不难发现 webpack 4 里面使用了 terser-webpack-plugin 插件替代了之前一直使用的 uglifyjs-webpack-plugin 作为它的内置插件。 以 4.39.3 这个版本为例,可以看到它的 package.json 文件的依赖包括了terser-webpack-plugin。 ? 图片 经过这么一次分析,我们可以知道 webpack 4 之所以具备默认压缩 ES6 代码的能力,离不开 terser-webpack-plugin 所起的作用! 进一步分析 在探究 terser-webpack-plugin 插件的原理前,我们先系统的回顾一下代码压缩插件的历史: 当 uglifyjs-webpack-plugin 版本小于 v1.0 时,它使用的是 /311a7285d36b38bada46102967c431e93ff48a89 到这里,我们可以得出一个基本的结论:terser-webpack-plugin 基于 terser 因此它具备 ES6
terser-webpack-plugin terser-webpack-plugin 该插件跟上面uglifyjs-webpack-plugin一样,都是用于减少我们代码js代码体积。 看上面描述:如果你的Webpack版本大于5+,则不需要安装此terser-webpack-plugin插件,会自带terser-webpack-plugin。 terser-webpack-plugin4的版本 安装 npm i terser-webpack-plugin@4 使用 const TerserWebpackPlugin = require("terser-webpack-plugin
官方: https://webpack.js.org/plugins/terser-webpack-plugin/ 如何解决? 原因 extractComments默认为true 解决办法 在webpack.config.js中修改配置 const TerserPlugin = require("terser-webpack-plugin
在 Vue CLI 中,我们可以使用 terser-webpack-plugin 插件来实现代码混淆。 1 . 安装 terser-webpack-plugin 插件 首先,通过以下命令来安装 terser-webpack-plugin 插件: $ npm install --save-dev terser-webpack-plugin 配置代码混淆选项 在 vue.config.js 文件中,添加以下配置: const TerserPlugin = require('terser-webpack-plugin'); module.exports
/\.js$/, loader: 'babel-loader', options: { cacheDirectory: true }, } ]; 7.使用terser-webpack-plugin 开启多线程和缓存 安装terser-webpack-plugin: npm install terser-webpack-plugin --save-dev 示例: const TerserPlugin = require('terser-webpack-plugin'); module.exports = { optimization: { minimizer: [
/ 关闭线上源码 productionSourceMap: false, } 移除后的效果 移除console 使用TerserPlugin插件实现 安装插件:终端执行 yarn add terser-webpack-plugin TerserPlugin({ terserOptions: { compress: { drop_console: true } } })] } } } 插件的更多使用方法:terser-webpack-plugin
使用下面的命令安装这个插件: npm install --save-dev terser-webpack-plugin 然后导入并添加这个插件到你的webpack.config.js中: //webpack.config.js path'); const webpackDashboard = require('webpack-dashboard/plugin'); const TerserPlugin = require("terser-webpack-plugin webpack.config.js.: //webpack.config.js const path = require('path'); const TerserPlugin = require("terser-webpack-plugin require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const TerserPlugin = require("terser-webpack-plugin require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const TerserPlugin = require("terser-webpack-plugin
推荐使用 terser-webpack-plugin terser-webpack-plugin 是一个使用 terser 压缩js的webpack 插件。 用法和 example const TerserPlugin = require('terser-webpack-plugin'); module.exports = { optimization
使用缓存 缓存可以提高构建速度,可以在 Webpack 中使用多种缓存方式,包括文件系统缓存、babel-loader 缓存、terser-webpack-plugin 缓存等。 在 Webpack 中,可以使用 UglifyJsPlugin 和 terser-webpack-plugin 插件来对代码进行压缩。 以下是一个使用 terser-webpack-plugin 的示例: // webpack.config.js const TerserPlugin = require('terser-webpack-plugin
1.由于使用 uglifyjs-webpack-plugin 插件打包会报错,不在介绍使用方法, 2.使用webpack提供的删除console的插件: 安装terser-webpack-plugin npm install terser-webpack-plugin -D 然后在vue.config.js中写插件的配置: module.export = { configureWebpack: (
需要注意的是在开发和生产环境下,内置的webpack配置是有差别的,比如在生产环境下,才会调用terser-webpack-plugin进行文件压缩处理。 值得一提的是,看上图我们可以发现,terser-webpack-plugin也是开启了缓存的。我们再回头看下,下图是Taro中配置的参数。 也还有一种解决办法,那就是执行build构建命令,这样就可以启用terser-webpack-plugin压缩文件,将主包文件缩小至2M以下。 我们的目标就是压缩这几个比较大的文件,用起来很简单,首先执行以下命令安装terser-webpack-plugin。 这里我选择的是3.0.5,跟Taro中使用的terser-webpack-plugin是同一个版本。
在 Vue CLI 中,我们可以使用 terser-webpack-plugin 插件来实现代码混淆。 1 . 安装 terser-webpack-plugin 插件首先,通过以下命令来安装 terser-webpack-plugin 插件: $ npm install --save-dev terser-webpack-plugin12 配置代码混淆选项在 vue.config.js 文件中,添加以下配置: const TerserPlugin = require('terser-webpack-plugin'); module.exports
在 Vue CLI 中,我们可以使用 terser-webpack-plugin 插件来实现代码混淆。 1 . 安装 terser-webpack-plugin 插件首先,通过以下命令来安装 terser-webpack-plugin 插件: $ npm install --save-dev terser-webpack-plugin12 配置代码混淆选项在 vue.config.js 文件中,添加以下配置: const TerserPlugin = require('terser-webpack-plugin'); module.exports
": "^6.2.1", "sass": "^1.26.5", "sass-loader": "^8.0.2", "style-loader": "^3.3.1", "terser-webpack-plugin vue-loader等 npm i vue-loader vue-template-compiler vue@next vuex@next vue-router@next -D npm install terser-webpack-plugin const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') //生产环境 const TerserPlugin = require('terser-webpack-plugin const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') //生产环境 const TerserPlugin = require('terser-webpack-plugin
安装webpack插件 yarn add html-webpack-plugin clean-webpack-plugin terser-webpack-plugin optimize-css-assets-webpack-plugin --dev html-webpack-plugin 处理静态文件 clean-webpack-plugin 打包时自动删除之前打包文件 terser-webpack-plugin JS压缩插件 webpack.base') const { CleanWebpackPlugin } = require('clean-webpack-plugin') const TerserPlugin = require('terser-webpack-plugin
值得一提的是,看上图我们可以发现,terser-webpack-plugin也是开启了缓存的。我们再回头看下,下图是Taro中配置的参数。 我们在执行build构建命令时,启用terser-webpack-plugin压缩文件,将主包文件缩小至2M以下。 因此,我们的策略是在开发环境下配置webpack,调用terser-webpack-plugin进行压缩。同时配置插件参数,压缩指定文件,而不是全部压缩。 首先,执行以下命令安装terser-webpack-plugin。 这里我选择的是3.0.5,跟Taro中使用的terser-webpack-plugin是同一个版本。
libraryTarget: 'umd', // 不加这个的话,使用的时候可能需要mylibrary.default libraryExport: 'default' }}添加terser-webpack-plugin 进行压缩const TerserPlugin = require('terser-webpack-plugin');optimization: { minimize: true, minimizer cacheDirectory=true' } ]}terser-webpack-plugin开启缓存// webpack5之后不再用这种方式new TerserWebpackPlugin cache: true})cache-loader缓存hard-source-webpack-plugin缓存,减少二次构建时间plugins: [new HardSourceWebpackPlugin()]terser-webpack-plugin
libraryTarget: 'umd', // 不加这个的话,使用的时候可能需要mylibrary.default libraryExport: 'default' }}添加terser-webpack-plugin 进行压缩const TerserPlugin = require('terser-webpack-plugin');optimization: { minimize: true, minimizer cacheDirectory=true' } ]}terser-webpack-plugin开启缓存// webpack5之后不再用这种方式new TerserWebpackPlugin cache: true})cache-loader缓存hard-source-webpack-plugin缓存,减少二次构建时间plugins: [new HardSourceWebpackPlugin()]terser-webpack-plugin
但如果将第三方库代码和业务代码都打包进一个bundle文件,那么处理这个bundle文件的插件,比如uglifyjs-webpack-plugin、terser-webpack-plugin等,就没办法不处理里面第三方库内容 代码压缩常用的js代码压缩插件有:uglifyjs-webpack-plugin 和 terser-webpack-plugin。在webpack4中,生产环境默认开启代码压缩。 v4.26.0版本之前,webpack内置的压缩插件是uglifyjs-webpack-plugin,从v4.26.0版本开始,换成了terser-webpack-plugin。 我们这里也以terser-webpack-plugin为例,和普通插件使用不同,在optimization.minimizer中配置压缩插件const TerserPlugin = require('terser-webpack-plugin
OptimizeCssAssetsPlugin({}), ] },}压缩jsuglifyjs-webpack-plugin插件在webpack4之后已经不再维护了,现在已经弃用了,取而代之的是具有相同功能的terser-webpack-plugin 插件 而webpack5 内置了terser-webpack-plugin 插件,所以我们不需重复安装,直接引用就可以了const TerserPlugin = require('terser-webpack-plugin