问题标签 [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 回答
210 浏览

angular - 组件名称被缩小

我实际上是为了记录目的而获取组件名称。我注意到的是,在开发环境中我能够获取组件名称,但在生产环境中我没有得到组件名称,我理解的是它被缩小并且我为每个组件获得一个字母或 2 个字母的名称。

所以我对此做了一些研究,我发现带有自定义 webpack 的 terser 插件可以解决这个问题。

所以我尝试了,但名称仍然没有被缩小。

我尝试过的代码:Installed custom webpack installed terser plugin

角.json

Webpack.JSON

我尝试设置最小化:true,保持类名 = true,keep_fnames = true 和 compress = false 但这对我没有帮助。我还尝试使用上述设置设置 minimize : false ,但我仍然没有得到组件名称。它仍然被缩小。我做错了什么?

0 投票
0 回答
308 浏览

webpack - 使用带有模块的 webpack 时如何通过 Terser 重命名顶级函数?

我正在使用 webpack 4 将一系列带有导入/导出的 TypeScript 文件捆绑到单个 bundle.js 中。然后我尝试使用 Terser 来混淆最终输出。我得到了有效的输出,但是,在我的代码中作为顶级函数开始的东西是由 webpack 以 Terser 拒绝破坏函数名称的方式输出的。

任何想法如何让 Terser 重命名这些函数或如何让 webpack 输出而不使用下面的webpack_require行,这似乎通过将我的函数变成对象上的方法来通过 Terser。

参考:webpack.config.js 文件...

0 投票
0 回答
424 浏览

javascript - Terser 缩小到 ES5

我正在尝试使用 terser api 将一个简单的 js 代码缩小为 es5,但它不起作用。

这是代码

它输出:class A{}const a=new A;console.log(a);

使用闭包编译器的相同代码删除了 class 关键字,这是我正在寻找的东西: var A=function(){},a=new A;console.log(a);

0 投票
1 回答
861 浏览

javascript - 支持带有 terser + rollup 的旧浏览器?

我需要支持相当旧的浏览器......我最后会说回到 IE10 或 11。

我添加了rollup...terser我想编写带有箭头函数等的 ES2017 代码,然后将其转换为非常旧的 JS 版本以在那些旧浏览器中运行。

这是我的汇总配置:

不幸的是,这似乎并没有真正将我的任何花哨的箭头函数转换为普通的匿名函数等......我有点困惑我在这里做错了什么?

我看到我可以通过compress选项手动控制这些,但我觉得我不应该被要求手动设置每种类型的功能,因为我不知道哪些浏览器支持什么。我会怀疑我只是告诉它“转换为 ES5”,然后它会完成其余的工作。

0 投票
1 回答
73 浏览

javascript - 使用 terser 保留用作字典的 json 对象

我目前将我的打字稿代码与汇总捆绑在一起,并希望使用 terser 进行缩小/丑化。在我的代码中,我有一个字典对象并将其导入到我的打字稿代码中。

在我的代码中,我使用它将标识符翻译成其他语言或通过项目标识符(ironResource)访问配置。Terser 会破坏我的钥匙并破坏对象的用途。

泰瑟设置:

如何阻止 terser 这样做?

0 投票
1 回答
7269 浏览

reactjs - TypeError:无法读取未定义的属性“javascript”+ terser webpack 插件+ react js

我最近添加了 terser-webpack-plugin 来缩小我的create react app代码。但是在构建项目时,我遇到了一个错误,例如TypeError: Cannot read property 'javascript' of undefined. 以下是来自我的控制台的一些日志。请让我知道任何解决方法或更改以修复它。

控制台日志:

我正在使用的 webpack 版本:

0 投票
0 回答
142 浏览

javascript - 如何使用 gulp-terser 缩小文件来解决“意外字符 '#'”

我正在使用此代码将js项目的所有文件缩小到一个文件中:

但是我在使用时遇到了这个错误gulp minify

我可以将所有文件合并为一个,但无法缩小它们。

有谁知道如何解决它?或者有没有其他方法可以缩小所有文件?我已经尝试过,uglify但我在我的项目中使用 ES6,所以它无法缩小文件。

0 投票
0 回答
182 浏览

javascript - SyntaxError: Unexpected token: eof (undefined) when concatenating file content with string 然后用 terser 缩小

我正在尝试读取文件并将文件内容保存到变量中。然后我想使用该变量并连接到它并以其他方式解析它,然后使用 terser 将其缩小,但我不断收到错误消息:

(node:13708) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token: eof (undefined)

当我删除此行时,它可以工作:

但是,删除它的问题是我将无法修改所需的字符串。我还需要在整个程序中多次执行此操作,然后我想缩小并将解析的完整输出写入文件。以下是相关代码:

0 投票
1 回答
7919 浏览

webpack - UglifyJS 和 webpack v5

我们一直在使用 UglifyJS 和 webpack v4 来编写我们的 react 代码,但后来才更新到 webpack v5。UglifyJS 似乎不适用于 webpack v5。有替代方案吗?我们需要一些可以与 babel-loader 一起使用的东西。

谢谢

0 投票
1 回答
257 浏览

javascript - 在 .bat 文件中执行多个更简洁的命令(压缩/修改)

Terser 是一个用于压缩和/或修改 javascript 文件的免费工具。

据我了解,该工具依赖于 node.js,因此这是首先运行 Terser 的先决条件。

这将在单个文件上执行 terser 命令:

这对于一些不经常更新的文件来说很好,但是如果你的项目中有大量的 Javascript 文件可以立即更新,你会喜欢一些更动态的东西。

我正在考虑将每个文件命令包含在.bat文件中并将其作为一个文件执行,但我无法让它工作:我尝试将它们放在 bat 文件中的ECHOPAUSE命令之间,但不幸的是它不能很好地工作.

据我所见,文档仅涵盖将 terser 作为 CLI 运行

有没有办法将命令行从 CLI 环境“移动”到.bat文件?