處理scss
npm i -D node-sass sass-loader
安裝sass-loader
和node-sass
webpack.config.js
文件中module.exports
對象中module
模塊rules
增加規則module:{ rules:[ // 用style-loader和css-loader處理css文件 { test:/\.(c|sc|sa)ss$/, use:[ 'style-loader', 'css-loader', "sass-loader" ] } ] }
npx webpack命令更改,可以在package.json文件中scripts腳本中增加"bulid":"npx webpack",然後運行npm run build 就可以打包了
css
文件提取爲單獨的文件
- 安裝
mini-css-extract-plugin
npm install --save-dev mini-css-extract-plugin
webpack.config.js
文件中添加// 添加 const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // module.exports添加 module.exports = { module:{ rules:[ // 用style-loader和css-loader處理css文件 { test:/\.(c|sc|sa)ss$/, use:[ MiniCssExtractPlugin.loader, 'css-loader', "sass-loader", ] }, ], }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css', // 增加hash值 // filename: '[name].[hash].css', // 保留打包歷史記錄 ignoreOrder:false }) ], }
css
和js
的壓縮
- 安裝
optimize-css-assets-webpack-plugin
npm install --save-dev optimize-css-assets-webpack-plugin
webpack.config.js
文件增加var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); module.exports = { plugins: [ new OptimizeCssAssetsPlugin() ], }
圖片處理
- 安裝
file-loader
npm install file-loader --save-dev
webpack.config.js
文件中module.exports = { module: { rules: [ { test: /\.(png|jpe?g|gif)$/i, loader: 'file-loader', options:{ // 圖片打包到dist下的images目錄下 outputPath:'images', // 保留文件名不變 name:'[name].[ext]' } }, ], }, };
圖片優化(壓縮)
- 安裝
image-webpack-loader
npm install image-webpack-loader --save-dev
webpack.config.js
文件中module.exports = { module: { rules: [{ test: /\.(gif|png|jpe?g|svg)$/i, use: [ 'file-loader', { loader: 'image-webpack-loader', options: { mozjpeg: { progressive: true, quality: 65 }, // optipng.enabled: false will disable optipng optipng: { enabled: false, }, pngquant: { quality: [0.65, 0.90], speed: 4 }, gifsicle: { interlaced: false, }, // the webp option will enable WEBP webp: { quality: 75 } } }, ], }] } }
圖片base64
優化
- 安裝
url-loader
npm install url-loader --save-dev
webpack.config.js
文件中module.exports = { module: { rules: [ { test: /\.(png|jpg|gif)$/i, use: [ // file-loader // url-loader可以替換file-loader { loader: 'url-loader', options: { limit: 8192, }, }, { loader: 'image-webpack-loader', options: { mozjpeg: { progressive: true, quality: 65, }, // optipng.enabled: false will disable optipng optipng: { enabled: false, }, pngquant: { quality: [0.65, 0.90], speed: 4, }, gifsicle: { interlaced: false, }, // the webp option will enable WEBP webp: { quality: 75, }, }, }, ], }, ], }, };
js
啓用babel
轉碼
-
安裝
babel-loader
npm i -D babel-loader babel-core babel-preset-env
-
webpack.config.js
文件module: { rules: [ { test: /\.m?js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } } ] }