在Webpack5中使用最新的terser-webpack-plugin

根据此链接(Terser 文档),如果您使用的是最新的 Webpack 5,则无需安装 Terser 插件,因为它已包含在 Webpack 5 中。但是,我很难让它发挥作用。

如果我terser-webpack-plugin从我的packages.json文件中删除并尝试像这样使用它(见下面的 webpack.production.js),我会收到这样的构建错误:

[webpack-cli] 加载 'D:ProjectReactMyAppconfigwebpack.production.js' 配置失败

[webpack-cli] 错误:找不到模块 'terser-webpack-plugin'

webpack.production.js

const TerserPlugin = require('terser-webpack-plugin');
const webpack = require('webpack');
const { merge } = require('webpack-merge');

module.exports = merge(commonCfg, {
        ......
        optimization: {
            minimize: true,
            minimizer: [new TerserPlugin({
                cache: false,
                parallel: false,
                sourceMap: true,
            })]
        },

现在,如果我terser-webpack-pluginpackage.json我的构建中包含最新版本 (5.1.1)并运行我的构建,我会收到以下错误消息:

[webpack-cli] 加载 'D:ProjectReactMyAppconfigwebpack.production.js' 配置失败

[webpack-cli] 无效的选项对象。Terser 插件已使用与 API 架构不匹配的选项对象进行初始化。

  • options 有一个未知的属性“sourceMap”。这些属性是有效的: object { test?, include?, exclude?, terserOptions?, extractComments?, parallel?, minify? }

我可以使这项工作的唯一方法是保持terser-webpack-plugin版本 4.2.X。

有什么方法可以使这个工作与最新的 Terser 版本一起使用吗?或者我误解了文档?

回答

嗨,这是我解决 Terserof Webpack 5 的方法

在 Webpack 5 之前:

minimizer: [
        new TerserPlugin({
            terserOptions: {
                mangle: {
                  compress: {},
                },
            }
        })
    ]

在 Webpack 5 之后:

 minimizer: [
        (compiler) => {
            const TerserPlugin = require('terser-webpack-plugin');
            new TerserPlugin({
              terserOptions: {
                    compress: {},
                }
            }).apply(compiler);
        },
    ]

你可以在这里阅读更多关于它的信息https://webpack.js.org/configuration/optimization/
并检查 terser 选项检查这个 url
https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions

这是我的文章的链接,解决了更多迁移错误问题
https://medium.com/@arianpopalyar/webpack-4-to-webpack-5-migration-9bc683d2bc72


以上是在Webpack5中使用最新的terser-webpack-plugin的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>