1.将打包后的css与js分割开

  1. 安装mini-css-extract-plugin,并使用这个插件
  2. npm i mini-css-extract-plugin
  1. const {resolve}=require('path')
  2. const HtmlWebpackPlugin = require("html-webpack-plugin");
  3. const MiniCssExtractPlugin=require('mini-css-extract-plugin')
  4. module.exports={
  5. entry:'./src/js/index.js',
  6. output:{
  7. filename:'js/bundle.js',
  8. path: resolve(__dirname,'dist')
  9. },
  10. module:{
  11. rules:[
  12. {
  13. test: /\.css$/,
  14. use: [
  15. // "style-loader",
  16. //这个loader取代style-loader可以将css分隔开
  17. MiniCssExtractPlugin.loader,
  18. //将css转化为js
  19. "css-loader",
  20. ],
  21. }
  22. ]
  23. },
  24. plugins:[
  25. new HtmlWebpackPlugin({
  26. template:'./src/index.html'
  27. }),
  28. new MiniCssExtractPlugin({
  29. //对打包后css重命名,并将之放入一个文件
  30. filename:'css/built.css'
  31. })
  32. ],
  33. mode:'development'
  34. }

2.解决css兼容性问题

  1. 下载两个包postcss-loader postcss-preset-env
  2. npm i postcss-loader postcss-preset-env
  1. //package.json
  2. "browserslist": {
  3. "development": [
  4. "last 1 chrome version",
  5. "last 1 firefox version",
  6. "last 1 safari version"
  7. ],
  8. "production": [
  9. ">0.2%",
  10. "not dead",
  11. "not op_mini all"
  12. ]
  13. }
  1. //webpack.config.js
  2. const { resolve } = require("path");
  3. const HtmlWebpackPlugin = require("html-webpack-plugin");
  4. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  5. //设置node环境变量,默认是生产环境production
  6. process.env.NODE_ENV = "development";
  7. module.exports = {
  8. entry: "./src/js/index.js",
  9. output: {
  10. filename: "js/bundle.js",
  11. path: resolve(__dirname, "dist"),
  12. },
  13. module: {
  14. rules: [
  15. {
  16. test: /\.css$/,
  17. use: [
  18. MiniCssExtractPlugin.loader,
  19. //将css转化为js
  20. "css-loader",
  21. //使用postcss-loader
  22. {
  23. loader: "postcss-loader",
  24. options: {
  25. postcssOptions: {
  26. ident: "postcss",
  27. plugins: () => [
  28. //帮助css找到package.json中的browserslist里面的配置,通过加载指定的css样式
  29. require("postcss-preset-env")(),
  30. ],
  31. },
  32. },
  33. },
  34. ],
  35. },
  36. ],
  37. },
  38. plugins: [
  39. new HtmlWebpackPlugin({
  40. template: "./src/index.html",
  41. }),
  42. new MiniCssExtractPlugin({
  43. //对打包后css重命名,并将之放入一个文件
  44. filename: "css/built.css",
  45. }),
  46. ],
  47. mode: "development",
  48. };

3.压缩css

下载 optimize-css-assets-webpack-plugin

  1. npm i optimize-css-assets-webpack-plugin -D

使用

  1. const OptimizeCssAssetsWebpackPlugin=require("optimize-css-assets-webpack-plugin")
  2. plugins: [
  3. new OptimizeCssAssetsWebpackPlugin()
  4. ],