// 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.js
scss.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.js
img.preset.js
img.min.plugin.js
npm i -D imagemin-webpack-plugin svg-inline-loader