webpack4--uglifyjs-webpack-plugin


webpack4之前版本,壓縮js代碼:

//webpack.config.js

plugins:[
        new webpack.optimize.UglifyJsPlugin({
            compress:{
                warnings:false //移除警告
            }
        }),
        new webpack.optimize.DedupePlugin({
            'process.env.NODE_ENV':'"production"'  //設置為產品上線環境,進一步壓縮js代碼
        })
    ]

 

webpack4版本,UglifyJsPlugin 不再壓縮 loaders。在未來很長一段時間里,需要通過設置 minimize:true 來壓縮 loaders。參考 loader 文檔里的相關選項。

loaders 的壓縮模式將在 webpack 3 或后續版本中取消。

為了兼容舊的 loaders,loaders 可以通過插件來切換到壓縮模式:

plugins: [
+   new webpack.LoaderOptionsPlugin({
+     minimize: true
+   })
  ]

不再需要 webpack.optimize.DedupePlugin。

1>webpack4中,webpack內置的JS壓縮插件不能使用了,可以安裝uglifyjs-webpack-plugin插件,使用同其他非內置插件;

webpack.config.js:
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
  optimization: {
    minimizer: [
      new UglifyJsPlugin({
        test: /\.js(\?.*)?$/i,  //測試匹配文件,
        include: /\/includes/, //包含哪些文件
        excluce: /\/excludes/, //不包含哪些文件

        //允許過濾哪些塊應該被uglified(默認情況下,所有塊都是uglified)。 
        //返回true以uglify塊,否則返回false。
        chunkFilter: (chunk) => {
            // `vendor` 模塊不壓縮
            if (chunk.name === 'vendor') {
              return false;
            }
            return true;
          }
        }),
  
        cache: false,   //是否啟用文件緩存,默認緩存在node_modules/.cache/uglifyjs-webpack-plugin.目錄
        parallel: true,  //使用多進程並行運行來提高構建速度
    ],
  },
};

 

更多用法參考如下官方文檔:
https://www.npmjs.com/package/uglifyjs-webpack-plugin

2> --mode production 表示生產環境,只要配置在package.json的script里面, js自動就壓縮了

//package.json
"scripts": {
    "dev": "webpack --mode development",
    "build": "webpack --mode production"
  },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM