将最新的 terser-webpack-plugin 与 Webpack5 一起使用

2024-06-25

根据这个链接(简洁的文档) https://webpack.js.org/plugins/terser-webpack-plugin/#terseroptions如果您使用最新的 Webpack 5,则无需安装 Terser 插件,因为它已包含在 Webpack 5 中。然而,我很难让这个工作正常进行。

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

[webpack-cli] 无法加载“D:\Project\React\MyApp\config\webpack.production.js”配置

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

webpack.生产.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-plugin我的版本(5.1.1)package.json并运行我的构建,我收到以下错误消息:

[webpack-cli] 无法加载“D:\Project\React\MyApp\config\webpack.production.js”配置

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

  • options 有一个未知属性“sourceMap”。这些属性是有效的:object { test?, include?, except?, terserOptions?, extractComments?,并行?,缩小? }

我能让这项工作成功的唯一方法就是保持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/ https://webpack.js.org/configuration/optimization/并检查 terser 选项,检查此 urlhttps://github.com/webpack-contrib/terser-webpack-plugin#terseroptions https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将最新的 terser-webpack-plugin 与 Webpack5 一起使用 的相关文章

随机推荐

  • 在开发中如何从 https://localhost:4200 提供 ember-cli

    为了使我们的身份验证能够与 ember 应用程序配合使用 我们需要从安全 URL 为该应用程序提供服务 我们有一个自签名的 ssl 证书 如何设置 ember cli 来为 index html 表单提供服务https domain Che
  • 如何使用 React-Router-DOM v6 `useSearchParams` 获取所有查询参数而不指定键?

    我目前正在使用react router dom v6 开发一个React 项目 我想获取所有查询参数 http localhost 3000 users page 5 pageSize 25 我想同时获取页面和页面大小 我知道我们可以使用下
  • C# WPF - 应用程序图标 + ShowInTaskbar = False

    我创建了一个具有以下属性的自定义分层 WPF 窗口 允许透明度 True 在任务栏显示 False 背景 透明 最上面 True 图标 图标 ico 我已在 项目属性 gt 应用程序 选项卡下添加了 Icon ico 如果 ShowInTa
  • 无法在媒体查询中设置 Shadow dom 中元素的样式

    In my styles app theme html我正在尝试更改菜单图标的大小paper drawer panel在媒体查询中 该元素位于index html 中 由于它位于 Shadow dom 中 我似乎无法访问它 我尝试过 可能不
  • 将 parseInt() 函数和基数参数与三元运算符一起使用

    作为一个案例研究 我试图掌握这个使用parseInt 函数 有几个问题 var maxChars parseInt formField attr maxlength formField attr maxlength counter text
  • 为什么我在迭代 28 后收到错误:“JSONDecodeError:期望值:第 1 行第 1 列(字符 0)”? [复制]

    这个问题在这里已经有答案了 我正在尝试从政府的 API 中提取数据 该 API 分为多个页面 每页有 10 个观察结果 我编写了一个算法 可以从每个观察中获取重要信息并将其添加到 pandas 数据框中 一切都很顺利 直到我到达迭代 29
  • 如何使用 GCC 9 将 `std::filesystem::file_time_type` 转换为字符串

    我正在尝试将文件的修改时间格式化为字符串 UTC 以下代码可以使用 GCC 8 进行编译 但不能使用 GCC 9 进行编译 include
  • Django 测试零停机架构迁移

    这个问题涉及 Django 中零停机模式迁移的主题 例如this one https stackoverflow com questions 10714673 deploying a single node django web appli
  • 列出 python 包依赖项而不加载它们?

    假设Python包A需要B C和D 有没有办法列出 A B C D 而不加载它们 Requires在元数据中 yolk M A 通常是不完整的 grr 可以下载A tar A egg 然后查看A setup py 但其中一些非常血腥 我原以
  • 如何将路径添加到剪辑路径

    当尝试向图像添加波浪效果时 我陷入困境 这两个 SVG 一个包含我尝试实现的路径 第二个的行为符合预期 但剪辑路径 形状错误 当我粘贴到所需的路径时 它不起作用 为什么以及如何才能完成这项工作 期望的路径
  • 如何获取调用方法的参数值?

    Question 我正在编写一些需要能够获得的代码values调用该类的方法的参数 我知道如何一直获取 ParameterInfo 数组 但我不知道如何获取值 这可能吗 如果是 我认为这与使用 MethodInfo 对象中的 MethodB
  • 派生的DataGridView绘图问题。显示黑色区域

    后期编辑我将其标记为 C 问题以及 C 问题 因为该问题以两种语言和解决方案呈现if显示的很可能是 C 市场上的大多数 我一直在 net 2 0 具体来说是C 但无关紧要 下开发一个应用程序 该应用程序使用自定义的派生数据网格视图 此 da
  • SQL Server 截断 XML 返回值

    我正在调试我们组织中现有的存储过程 它尝试返回一个 2047 字节长的 XML 字符串 使用 for XML auto 当我在 SSMS 中运行存储过程时 返回值出现在结果窗口中 如果我单击该值 显示为超链接 则会打开一个新窗口并显示整个字
  • 如何在清单中正确设置多个 applicationId 或包名称

    我有一个与这个问题直接相关的问题 如何让两个构建风格继承 Android Studio 中的根风格 https stackoverflow com questions 26636282 how to have two build flavo
  • Mysql 中的 MD5 和 Salt

    如何 解密 各种电商存储的密码添加 盐 我不是密码专家 所以 在过去 我使用过类似的东西 SELECT FROM mytable WHERE email email AND passwd MD5 pwd MySql MD5 函数只接受一个参
  • OpenCV 从中心 x,y 绘制矩形

    我想仅使用中心点绘制一个矩形 所以在我的中心点周围几乎是一个矩形 最简单的方法是什么 谢谢 考虑到中心 x y then cv rectangle image cvPoint x w 2 y h 2 cvPoint x w 2 y h 2
  • React - Jest - 测试阻止默认操作

    我不知道如何测试按键事件并防止默认 测试达到了代码但是preventDefault从未被称为 Received number of calls 0 反应组件 App js const onKeyDown e gt console log T
  • 如何使用 VBA 在 Excel 中搜索单词然后删除整行? [复制]

    这个问题在这里已经有答案了 请有人帮忙 我正在尝试编写一个 VBA 代码 在 Excel 工作表 D 列中搜索特定单词 DR 然后删除整行 工作表中特定单词多次出现 我想做的就是搜索这些出现的情况 然后删除包含这些单词的整行 我的问题是我不
  • VB.net 将窗口置于前面

    我需要在 VB net 2010 中使用什么代码来设置窗口到屏幕前面 我想要实现的是显示紧急警报类型 它是一种表单 由于某些原因我没有使用消息框 有人建议使用以下代码 但这不起作用 Private Sub frmMessage Load B
  • 将最新的 terser-webpack-plugin 与 Webpack5 一起使用

    根据这个链接 简洁的文档 https webpack js org plugins terser webpack plugin terseroptions如果您使用最新的 Webpack 5 则无需安装 Terser 插件 因为它已包含在