一、html-webpack-plugin

简化了HTML文件的创建,以便为你的webpack包提供服务。不用我们自己生成html文件,插件自动帮我们生成

配置

  1. const HtmlWebpackPlugin = require('html-webpack-plugin');
  2. plugins: [
  3. new HtmlWebpackPlugin({
  4. template: './src/index.html', // 以该html文件为模板,生成文件
  5. filename: 'index.html' // 产生后的文件名
  6. })
  7. ]

二、clean-webpack-plugin

打包生成文件夹之前,把原来的删除

配置

  1. const {CleanWebpackPlugin} = require('clean-webpack-plugin');
  2. plugins: [
  3. new CleanWebpackPlugin()
  4. ]

三、mini-css-extract-plugin

将css样式分离出来

配置

  1. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  2. rules: [
  3. {
  4. test: /\.css$/,
  5. // css-loader 用来解析处理css文件中的url路径
  6. // style-loader 可以把css文件变成style标签插入到header中
  7. // 多个loader是有顺序要求的,从右往左写,因为转换的时候是从右往左转换
  8. // loader: ['style-loader', 'css-loader']
  9. use: [
  10. //添加loader,用于生产模式,不能有 style-loader
  11. {
  12. loader:MiniCssExtractPlugin.loader,
  13. options:{
  14. publicPath:'../'
  15. }
  16. },
  17. "css-loader"
  18. ]
  19. }
  20. ]
  21. plugins: [
  22. new MiniCssExtractPlugin({
  23. filename: "css/[name].css",
  24. chunkFilename: "[id].css"
  25. })
  26. ]

四、optimize-css-assets-webpack-plugin

压缩css代码(去除空格和注释)

  1. const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
  2. plugins: [
  3. new OptimizeCSSAssetsPlugin({})
  4. ]

五、uglifyjs-webpack-plugin

压缩js代码

  1. const uglify = require('uglifyjs-webpack-plugin');
  2. plugins: [
  3. new uglify()
  4. ]

六、webpack-parallel-uglify-plugin

并行压缩js代码

  1. const ParalleUglifyPlugin = require('webpack-parallel-uglify-plugin');
  2. plugins: [
  3. new ParalleUglifyPlugin({
  4. uglifyJs:{
  5. output: {
  6. beautify:false, // 最紧凑的输出
  7. comments:true, // 删除所有的注释
  8. },
  9. compress:{
  10. warnings: false, //在UglifyJs删除没有用到的代码时不输出警告
  11. drop_console:true, // 删除所有的 `console` 语句,可以兼容ie浏览器
  12. collapse_vars:true, // 内嵌定义了但是只用到一次的变量
  13. reduce_vars:true // 提取出出现多次但是没有定义成变量去引用的静态值
  14. }
  15. }
  16. })
  17. ]