// development mode
npm run dev
// watch mode
npm run dev:w
// server
npm start
// production mode
npm run build
// analyze bundle
npm run analyze
- В development mode -
inline-source-map - В production mode -
source-map
Запускается на 9000 порте
Обслуживает папку dist
./webpack/loaders- лоадеры/presets- пресеты лоадеров/plugins- плагины/config/optimization.js- настройки оптимизации
npm i -D clean-webpack-plugin copy-webpack-plugin cross-env webpack webpack-bundle-analyzer webpack-cli webpack-dev-server file-loader url-loader raw-loader
development: SCSS -> вставка в тег style production: SCSS -> PostCSS -> извлечение
sass-loader- Компиляция SCSS в CSSpcss-loader- PostCSS обработка в production modecss-loader- разрешение импортовstyle-loader- внедрение css в документ в development modeMiniCSSExtractPlugin.loader- извлечение css в файл в development mode
scss.preset.development.jsscss.preset.production.js
css.extract.pluginв production modestylelint.pluginв production mode
npm i -D autoprefixer css-loader css-mqpacker cssnano mini-css-extract-plugin node-sass postcss-loader postcss-preset-env postcss-scss sass-loader style-loader stylelint-config-prettier stylelint stylelint-order stylelint-webpack-plugin
.stylelintrc.js- StyleLintpostcss.config.js- PostCSS
pug -> html
pug-loader- компиляция Pug в HTML
pug.preset.js
html.plugin- создание HTML-файла с подключенными ассетами
npm i -D html-webpack-plugin pug pug-loader
es6/jsx -> js
babel-loader- компиляция ES6 в ES5eslint-loader- ESLint
es6.preset.js
npm i -D @babel/core @babel/plugin-proposal-class-properties @babel/plugin-proposal-export-namespace-from @babel/plugin-proposal-function-bind @babel/plugin-proposal-nullish-coalescing-operator @babel/plugin-proposal-numeric-separator @babel/plugin-proposal-optional-chaining @babel/plugin-syntax-export-default-from @babel/plugin-syntax-dynamic-import @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react babel-loader babel-eslint eslint eslint-loader
npm i @babel/runtime
babel.config.js- Babel
- Настройка
jsxв./webpack/config/rules.js
jsx.preset.js
npm i react react-dom
raw-loader- импорт файлов в виде строки
txt.preset.js
url-loader- импорт изображений в виде Base64 или копирование файла в distsvg-inline-loader- импорт svg в виде строки
svg.preset.jsimg.preset.js
img.min.plugin.js
npm i -D imagemin-webpack-plugin svg-inline-loader