html-webpack-plugin

htmlwebpackplugin会在打包结束后,⾃动⽣成⼀个html⽂件,并把打包⽣成的js模块引⼊到该html中。

  1. plugins: [
  2. new htmlWebpackPlugin({
  3. title: "My App",
  4. filename: "app.html",
  5. template: "./src/index.html"
  6. })
  7. ] ;

clean-webpack-plugin

避免构建前每次都需要⼿动删除 dist , 默认会删除 output 指定的输出⽬录

  1. plugins: [
  2. new CleanWebpackPlugin()
  3. ]

mini-css-extract-plugin

webpack.config.js 配置

  1. const { CleanWebpackPlugin } = require("clean webpack-plugin");
  2. module: {
  3. rules: [
  4. {
  5. test: /\.css$/,
  6. use : [
  7. MiniCssExtractPlugin.loader,
  8. { loader: "css-loader" }
  9. ]
  10. },
  11. {
  12. test: /\.less$/,
  13. use : [
  14. MiniCssExtractPlugin.loader,
  15. { loader: "css-loader" },
  16. { loader: "less-loader" }
  17. ]
  18. }
  19. ]
  20. },
  21. ————————————————
  22. plugins: [
  23. new MiniCssExtractPlugin({
  24. filename: "css/common.css"
  25. }),
  26. ]


copy-webpack-plugin

在我们的项目中一般还有一些不需要参与构建的静态文件,那它们最终也需要发布到线上,例如网站的 favicon、robots.txt 等。
一般我们建议,把这类文件统一放在项目根目录下的 public 或者 static 目录中,我们希望 Webpack 在打包时一并将这个目录下所有的文件复制到输出目录。

  1. new CopyWebpackPlugin({
  2. patterns: ['public'] // 需要拷贝的目录或者路径通配符
  3. })

这个插件类型的构造函数需要我们传入一个字符串数组,用于指定需要拷贝的文件路径。它可以是一个通配符,也可以是一个目录或者文件的相对路径。我们这里传入的是 public 目录,表示将这个目录下所有文件全部拷贝到输出目录中。