问题标签 [terser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
25 浏览

javascript - 任何 babel 插件可以删除不必要的分配?

我正在尝试优化我的包,我想从这里转换代码:

对此:

有这种转换的 babel 插件吗?或者它会由像 Terser 这样的 minifier 处理吗?

0 投票
0 回答
113 浏览

gruntjs - grunt 中的源映射(babel + terser)

我在 grunt 中使用 babel 和 terser。它们都生成 sourceMaps。Babel 必须先执行,所以它的 sourceMap 应该是 terser 的 inputSoruceMap。

我在stackoverflow上发现了类似的东西:

但它只是一个文件。就我而言,我有一个文件列表:

在这种情况下,如何在 terser 中添加源映射?它不是一个文件。这是每个脚本的另一个文件(script_file_name + '.map')。怎么做?

0 投票
0 回答
372 浏览

angular - 如何正确使用`keep_classnames`?

我在旧应用程序中更新了 Angular(从 7 到 11),一切都很好,除了一件事 :)。首先,让我说我不是 Angular 方面的专家。

执行命令后ng build --prod,我得到:

我在 Angular.json 中进行了更改

我补充说webpack.config.js

好的,prod 正在构建,但应用程序仍然无法正常运行。我一次不能打开多个窗口... Terser 用于避免缩短组件名称,在构建产品时最小化代码时,因为这些名称用于处理窗口。我究竟做错了什么?或者我应该使用其他方式来保留这些组件名称?

我还附上package.json

0 投票
1 回答
77 浏览

autodesk-forge - 由于 Vue webpack 重整(terser),找不到 Forge Viewer 属性数据库 userFunction

我正在使用 auserFunction在自定义 Forge Viewer 扩展中查询属性数据库。这在使用npm run serve. 但是,当我将网站部署到网络(使用npm run build)时,该功能不再执行。错误说:SyntaxError: Function statements require a function name。这是因为,根据文档,执行的函数executeUserFunction 必须命名为userFunction.

经过进一步检查,我发现这是因为 Vue & Webpack 的修改功能(由 执行terser-webpack-plugin),它重命名变量并删除函数名称以减小文件大小。

我尝试了许多不同的方法,从将函数作为扩展类的一部分到将其移动到全局 JS 范围,但没有任何帮助。我还尝试objects.js从重整中排除(这是我编写的扩展名的名称),但这也不起作用。

如何配置 terser 以停止修改这一变量?

0 投票
1 回答
140 浏览

javascript - 防止 `terser` 改变函数参数名称

假设有一个函数

缩小它时terser,它会同时更改函数名称和参数名称(默认)

我需要保持参数名称不变。我找到了一个--keep_fnames解决函数重命名的选项,但我没有看到任何选项可以防止参数被重命名。

0 投票
1 回答
530 浏览

javascript - Webpack 可以通过 tree-shaking 删除已经被 tree-shaking 删除的导入吗

是否可以配置 Webpack,使其 tree-shaking 足够智能以删除仅依赖于其他 tree-shaken 导出的导入?

例子:

entry.js

appleBanana.js

芒果橙.js

webpack.config.js优化

使用上述编译时,我们得到:

请注意,两者mangoorange都被标记为已使用,即使banana()(调用orange())已被摇树删除。因此,在 Terser/Uglify 缩小包中,它们都被包含在内。

有没有办法让 Webpack 或 Terser/UglifyJS 更智能,并且还可以删除对树后摇动中未使用的符号的导入?

0 投票
0 回答
55 浏览

minify - 如何将 terser 选项传递给 html-minifier-terser

如何将更简洁的选项传递给 html-minifier-terser ( https://www.npmjs.com/package/html-minifier-terser )?

文档没有显示任何发送方式,只有 html 缩小处理的一般选项。

0 投票
0 回答
108 浏览

javascript - 尝试使用“Unexpected token: punc (.)”处理 function() { }.bind(this) 时,Terser 窒息

我目前正在尝试构建一个包含Lottie的汇总应用程序,它允许将动画封装在 JSON 文件中并使用 Javascript 直接呈现。

尝试处理此代码时Terser阻塞的默认配置,因为它包含以下形式的函数(示例):

于是它会吐出错误,Unexpected token: punc (.)

问题...

  • 这种对函数的绑定实际上是某种有效的 ECMAScript 吗?我以前从未见过没有括号包装的:例如(function () { ... }).bind(this)
  • 如果是这样,有没有办法让更简洁的代码来处理?
0 投票
0 回答
249 浏览

webpack - 仅在生产版本中对 Webpack terser 进行故障排除

我最近升级到 Webpack 5 并在 uglify js 上使用了 terser,但我在生产构建中收到错误,我找不到错误位置,因为错误本身源自webpack-terser-plugin,我可能能够剖析代码并继续构建直到我到达了我在代码中做错了什么的地方,但这真的是唯一的方法吗?那么我该如何解决这个错误呢?

依赖关系

网络包文件:

0 投票
0 回答
145 浏览

javascript - Gulp 构建导致带有 terser 的 webpack 错误:Unexpected token: punc (:)

这是错误日志以供参考:

安装 Box 的 box-ui-elements npm 包后,我开始遇到问题。起初它存在对等依赖的问题(axios 和 ts)。

这是我得到的唯一 webpack 错误。我的 github 仓库:https ://github.com/BustosAndrew/Integration