问题标签 [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 投票
1 回答
82 浏览

java - Heroku 构建失败,因为缺少 npm

我在 gradle 任务中使用 terser 作为缩小步骤。npm但是 heroku在构建过程中没有二进制文件。

这是我试过的

有没有办法将可执行文件安装到存储库中,所以我可以使用它而不需要在 heroku 中使用 npm?

或者我如何告诉 heroku 我需要 java 和 nodejs 工具?

0 投票
4 回答
598 浏览

angular8 - ngOnDestroy 时无法读取未定义的属性“data-ck-expando”

ckeditor 工作得很好,只是 ngOnDestroy 处理程序崩溃了。

我正在使用带有插件“TerserPlugin”的 webpack 来最小化。问题似乎来自

为了尝试,我以这种方式更改了 polyfills.ts 文件中的 zone.js:

但不为我工作。

这是错误:

0 投票
3 回答
4929 浏览

typescript - WebPack+TerserPlugin:mangle 会忽略属性和类名——mangled 代码的质量很差

生成的代码被缩小但几乎没有被破坏这是它在谷歌浏览器(美化)中的样子: 结果示例未损坏代码 1/2。 结果示例未损坏代码 1/2。

所有属性名称,许多变量都有其原始名称。即使明确指定了 Terser 的 mangle 选项:

  • 破坏:真的,
  • 源地图:假,
  • keep_fnames:假,
  • 顶层:真,

这是 WebPack 配置:

我错过了配置中的某些内容吗?

0 投票
1 回答
170 浏览

hl7 - 无法从 HL7 REF^I12 消息中获取 OBR 段

我正在处理 REF^I12 类型的 HL7 (2.3.1) 消息。我正在尝试使用 terser 从消息中获取 OBR 段,但是,每当我尝试获取 OBR 或 OBX 段值时,我都会得到空值。下面是我试图解析的 hl7 消息-

我实际上是在使用 terser 来解析并从 OBR-28-1 段中获取值。但是每当我尝试获取值时,我的代码总是返回 null 。以下是代码片段:

当我从消息中删除 PV1 段时,我可以获得 OBR 段值。但是,如果存在 PV1 段,则 terser 无法识别 OBR 甚至 OBX 段。当我通过在线解析器解析时,HL7 文件似乎是有效的。

如何从消息中获取 OBR 段?有什么我做错了吗?如果有人可以在这里帮助我,我会很高兴。

0 投票
1 回答
1123 浏览

angular - 使用 Angular 8 在优化构建中保留函数和类名称(出于反思目的)

我正在尝试配置我的 Angular 8 项目构建以保留函数和类名(我需要我的类名来使用反射和其他基于类名的东西)。为了管理这个,我使用@angular-builders/custom-webpackwhich 允许覆盖 webpack 配置。

我的extra-webpack.config.js

正如Terser 文档中所说,keep_classnames用于保留类名称并keep_fnames用于保留函数名称。

问题是我的类名和函数名不见了,我在 main.XXXX.js 构建文件中找不到它们,并且我的应用程序无法正常工作,因为反射不起作用。

我确定我extra-webpack.config.js的不会被忽略,因为我可以"Custom webpack config"在控制台上看到日志。

我应该配置其他东西来保留我的函数和类名吗?

0 投票
1 回答
273 浏览

angular - angular-slickgrid 构建失败

导入 Angular 光滑网格后,角度构建失败

ng build --prod

错误

0 投票
0 回答
204 浏览

javascript - 如何在 weback.config.js 字符串中转义感叹号,以免导致 Terser 出错

我需要为 Webpack 的 webpack.config.js 设置一个名称中带有感叹号的外部依赖项(或找出一种更好的方法让 Webpack 在捆绑时忽略此依赖项),因为此依赖项直到运行时才可访问。

这是我尝试在 webpack.config.js 中将此依赖项设置为外部的方式:

不幸的是,我无法更改依赖项的名称或访问方式。但是当 Webpack 尝试转译时,感叹号会导致错误。

尝试使用 webpack 构建时遇到的错误是:

来自 Terser 的 bundle.js 中的错误

意外令牌:运算符 (!) [bundle.js:1595,21]

如果我从字符串中删除感叹号,它不再出错,所以这绝对是问题所在。在感叹号之前添加一个反斜杠并不能解决这个问题——是否还有其他类似的选项可以为 Terser 的目的转义字符?还是有另一种方法可以让 Webpack 忽略不会被感叹号阻碍的依赖关系?有任何想法吗?

谢谢!

0 投票
1 回答
857 浏览

webpack - “DevTools 无法解析 SourceMap:webpack://”和 monorepo lerna 包源映射重写

Chrome 在控制台中为许多处于相似位置的文件提供了这样的警告,这只是一个这样的例子:

这是我们的代码,但 url 是 404,因为在构建管道的某个地方,源映射相对路径没有更新到正确的新位置。“core”是一个monorepo lerna包,我们使用webpack和“source-map-loader”和“Terser”。不知道不兼容在哪里。

我们将不得不尝试隔离这些插件并查看各种构建输出以长期解决这个问题,但我想知道是否有人已经为自己解决了这个问题或认识到为什么会有“webpack://”样式的 url以及为什么“/core”包的源映射相对路径没有被正确映射或重写。只是从社区中寻找线索来缩小搜索范围。

谢谢!

0 投票
0 回答
433 浏览

javascript - 为什么 terser 不转换 ES6 模板文字

如何配置 terser 将 ES6 模板文字转换为 ES5 字符串?

我有一个文件

当我用 压缩时terser file.js,内容保持不变。我希望得到类似的东西

0 投票
2 回答
328 浏览

javascript - webpack 和 terser 在缩小的输出中泄漏源文件名

使用 Terser 缩小时,有没有办法防止源文件名传播到 webpack 输出?

例子

.js我缩小的生产 React 应用程序生成的输出文件中,我仍然在输出中看到未损坏的源文件名。

示例摘录:

你可以在这里看到一些东西:

  • 我的专有代码有某种模块,称为MyApiClient.js
  • 我们正在使用axiosSentry

Webpack 配置

这是我们生产 webpack 配置的相关部分:

问题

我担心这是泄漏有关我们应用程序内部结构的信息,而且我还没有在堆栈中找到正确的位置(webpack 选项?更简洁的选项?)来防止它。

尽管上面的示例是良性的,当然,再多的修改也不会使代码无法对功能进行逆向工程,但我不想让其他人容易理解应用程序的构建方式以及它可能隐藏的功能.

谢谢!