Шаблонная Webpack
-сборка React
-SPA
-приложения на TypeScript
Этот проект представляет собой шаблонную сборку для разработки приложений на React
с использованием TypeScript
и Webpack
. Включает в себя конфигурации для: линтинга, форматирования кода, поддержки SCSS
, согласованных коммитов, деплоя на GitHub
и автоматической генерации фавиконов.
Основные модули и пакеты проекта:
React
: мощная библиотека для создания интерактивных пользовательских интерфейсов;TypeScript
: язык программирования, расширяющий возможностиJavaScript
, добавляя типизацию кода для максимальной безопасности разработки;Webpack
: модульный бандлер дляJavaScript
приложений;Babel
: транспайлер для преобразования современногоJavaScript
в совместимый с более старыми браузерами;Sass (SCSS)
: препроцессорCSS
, добавляющий возможности удобного написания стилей, такие, как: переменные, вложенные правила и миксины;ESlint
: инструмент для анализа кода на предмет соответствияECMAScript
-стандартам его написания;@typescript-eslint
: набор инструментов для интеграцииTypeScript
сESLint
;Prettier
: инструмент для форматирования кода;Stylelint
: линтер для стилей;webpack-dev-server
: локальный сервер для разработки с поддержкой "горячей" перезагрузки;mini-css-extract-plugin
: плагин для извлеченияCSS
в отдельные файлы;html-webpack-plugin
: плагин для генерацииHTML
-файлов;favicons-webpack-plugin
: плагин для генерации фавиконов.
.husky
: папка для хранения хуковHusky
, которые помогают автоматизировать задачи при работе сGit
;public
: папка для статических файлов, таких, какindex.html
, которые будут использоваться в приложении;src
: основная папка с исходным кодом приложения;assets
: папка для хранения статических ресурсов, таких, как: изображения, шрифты и т.д.;components
: папка для храненияReact
-компонентов;pages
: папка для хранения страниц приложения;services
: папка для хранения сервисов, таких какAPI
-запросы;utils
: папка для хранения утилитарных функций и хелперов;custom.d.tsx
: файл для пользовательских типовTypeScript
;index.tsx
: главный файл входа в приложение.
.env
: файл для хранения переменных окружения;.gitignore
: файл для указания файлов и папок, которые должны быть проигнорированы системой контроля версийGit
;.prettierignore
: определяет файлы и папки, которые должны быть проигнорированыPrettier
;.stylelintignore
: файл для указания файлов и папок, которые должны быть проигнорированыStylelint
;eslint.config.mjs
: определяет правила и настройки дляESLint
;package.json
: Содержит метаданные проекта, список зависимостей последних версий и скрипты для выполнения различных задач;postcss.config.mjs
: Конфигурационный файл дляPostCSS
;prettier.config.mjs
: конфигурационный файл дляPrettier
;stylelint.config.mjs
: конфигурационный файл дляStylelint
;tsconfig.json
: конфигурационный файл дляTypeScript
;webpack.config.mjs
: определяет конфигурацию для сборки проекта с помощьюWebpack
.
start
: запуск сервера разработки:
npm run start
eslint
: запускESLint
для проверки кода:
npm run eslint
stylelint
: запускStylelint
для проверки стилей:
npm run stylelint
format
: форматирование кода с помощьюPrettier
:
npm run format
check
: запуск всех проверок (ESLint
,Stylelint
иPrettier
):
npm run check
build
: сборка проекта для продакшена:
npm run build
deploy
: проверка, сборка и деплой проекта:
npm run deploy
Конфигурация Webpack находится в файле webpack.config.mjs
. Основные моменты:
entry
: точка входа в приложение;output
: настройки выходных файлов;module
: правила для обработки различных типов файлов;plugins
: плагины для расширения функциональностиWebpack
.
ESLint
: конфигурация находится в файлеeslint.config.mjs
;Stylelint
: конфигурация находится в файлеstylelint.config.mjs
;Prettier
: конфигурация находится в файлеprettier.config.mjs
.
Для поддержки SCSS
используется sass-loader
и style-loader
. Конфигурация находится в файле webpack.config.mjs
.
Используется плагин favicons-webpack-plugin
для автоматической генерации фавиконов. Конфигурация находится в файле webpack.config.mjs
.