1.将打包后的css与js分割开
安装mini-css-extract-plugin,并使用这个插件npm i mini-css-extract-plugin
const {resolve}=require('path')const HtmlWebpackPlugin = require("html-webpack-plugin");const MiniCssExtractPlugin=require('mini-css-extract-plugin')module.exports={entry:'./src/js/index.js',output:{filename:'js/bundle.js',path: resolve(__dirname,'dist')},module:{rules:[{test: /\.css$/,use: [// "style-loader",//这个loader取代style-loader可以将css分隔开MiniCssExtractPlugin.loader,//将css转化为js"css-loader",],}]},plugins:[new HtmlWebpackPlugin({template:'./src/index.html'}),new MiniCssExtractPlugin({//对打包后css重命名,并将之放入一个文件filename:'css/built.css'})],mode:'development'}
2.解决css兼容性问题
下载两个包postcss-loader postcss-preset-envnpm i postcss-loader postcss-preset-env
//package.json"browserslist": {"development": ["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production": [">0.2%","not dead","not op_mini all"]}
//webpack.config.jsconst { resolve } = require("path");const HtmlWebpackPlugin = require("html-webpack-plugin");const MiniCssExtractPlugin = require("mini-css-extract-plugin");//设置node环境变量,默认是生产环境productionprocess.env.NODE_ENV = "development";module.exports = {entry: "./src/js/index.js",output: {filename: "js/bundle.js",path: resolve(__dirname, "dist"),},module: {rules: [{test: /\.css$/,use: [MiniCssExtractPlugin.loader,//将css转化为js"css-loader",//使用postcss-loader{loader: "postcss-loader",options: {postcssOptions: {ident: "postcss",plugins: () => [//帮助css找到package.json中的browserslist里面的配置,通过加载指定的css样式require("postcss-preset-env")(),],},},},],},],},plugins: [new HtmlWebpackPlugin({template: "./src/index.html",}),new MiniCssExtractPlugin({//对打包后css重命名,并将之放入一个文件filename: "css/built.css",}),],mode: "development",};
3.压缩css
下载 optimize-css-assets-webpack-plugin
npm i optimize-css-assets-webpack-plugin -D
使用
const OptimizeCssAssetsWebpackPlugin=require("optimize-css-assets-webpack-plugin")plugins: [new OptimizeCssAssetsWebpackPlugin()],
