问题标签 [uglifyjs2]

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 回答
181 浏览

gulp - 丑化文件但不缩小某些字符串

是否可以使用带有 gulp 的 UglifyJS2 来有效地忽略某些字符串,例如:

本质上,我们在我们的 js 中使用 Liquid,就像我们在 Shopify 电子商务平台上一样。但是我们需要液体保持原样,以便 Shopify 可以处理液体。

非常感谢您提供的任何帮助!

0 投票
0 回答
214 浏览

javascript - 在 uglifyJS(或替代方法)中维护行号

我需要在维护行号的同时连接/缩小一些 javascript 代码。我不认为我可以使用源地图。

情况:我有一个生产站点,当堆栈跟踪出现给最终用户时,它会将错误报告回我的服务器,并且在不知道行号的情况下很难调试某些错误。

我似乎记得 uglifyJS2 中的一个选项,但看起来它可能已经被淘汰了(可能是因为源映射非常有用)。

任何缩小器都可以。如果有其他合理的选择适合我的情况,我愿意接受建议。

编辑:我知道我可以连接文件,但我想缩小/混淆它们。

0 投票
5 回答
27146 浏览

javascript - 无法缩小此文件中的代码

我正在编写一个我想放在的 JavaScript 库npm。我目前正在另一个项目中使用该库,并且已使用其 GitHub 存储库将其添加为依赖项:

我也在使用带有UglifyJsPlugin. 现在,当我想构建我的项目时,我收到一个错误:

编译失败。

无法缩小此文件中的代码:

./packages/react-scripts/node_modules/react-web-component/src/index.js 行 18:0

在此处阅读更多信息:https ://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#npm-run-build-fails-to-minify

错误命令失败,退出代码为 1。

这是我图书馆的问题。当我从我的部门(和我的代码)中删除它时,编译工作。

我无法弄清楚问题是什么,我的代码看起来很简单:

retargetEventsand getStyleElementsFromReactWebComponentStyleLoaderrequires 里面有简单的module.export命令。你可以在这里这里查看他们的源代码。

我已经尝试使用 ES6 导出/导入命令发布我的库。

我的库的完整源代码(只有这 3 个文件)可以在https://github.com/LukasBombach/react-web-component找到

0 投票
1 回答
16353 浏览

javascript - UglifyJS webpack 插件抛出:Unexpected token: name (features)

我曾经在使用 UglifyJS for Webpack 和 ES6 模块时遇到问题:

来自 UglifyJs 的 static/js/vendor.6ccd9e38979a78765c7a.js 中的错误 意外令牌:名称(功能)[./node_modules/pica/lib/mathlib.js:19,0][static/js/vendor.6ccd9e38979a78765c7a.js:39003, 6]

我读到 Webpack 插件的新 beta 版本支持 ES6:

https://github.com/webpack-contrib/uglifyjs-webpack-plugin

但是,现在我收到另一个错误:

来自 UglifyJs 的 static/js/vendor.6ccd9e38979a78765c7a.js 中的错误意外令牌:名称(功能)[static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]

可能是什么问题呢?

0 投票
1 回答
917 浏览

node.js - UglifyJS 不能使用正则表达式

这里,我似乎无法使用它

因为它产生一个错误:

错误:regex.test 不是 should_mangle 的函数(在 (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1) 进行评估,:10864:29) at add (eval at (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :10874:14) at TreeWalker.eval [as visit] (在 TreeWalker._visit 上评估 (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :10820:13) (评估在 (C:\Users \Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :1213:24) 在 AST_ObjectKeyVal._walk(在 (C:\Users\Doge\AppData\Roaming\ npm\node_modules\uglify-js\tools\node.js:21:1), :1049:24) at AST_Object.eval (eval at (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js \tools\node.js:21:1), :1036:31) 在 TreeWalker._visit (eval at (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :1217:21) 在 AST_Object._walk (eval at (C:\Users\Doge\AppData\ Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :1033:24) at AST_Call.eval (eval at (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify -js\tools\node.js:21:1), :902:25) 在 TreeWalker._visit(在 (C:\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node. js:21:1), :1217:21)\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :1217:21)\Users\Doge\AppData\Roaming\npm\node_modules\uglify-js\tools\node.js:21:1), :1217:21)

我错过了安装依赖项还是什么?我尝试搜索此内容,但找不到任何解决问题的参考资料。

一切都好。在添加正则表达式参数之前,我可以毫无问题地丑化我的脚本。谢谢。

0 投票
7 回答
63844 浏览

javascript - UglifyJS 抛出意外的标记:keyword (const) with node_modules

我开始的一个小项目使用声明变量的节点模块(通过npm安装)。const运行和测试这个项目很好,但是执行 UglifyJS 时 browserify 失败。

意外标记:关键字 (const)

这是一个通用的 Gulp 文件,我已经成功地将它用于其他几个没有这个问题的项目(即没有那个特定的节点模块)。

gulpfile.js

我已经尝试通过在安装了 npm 的模块中替换所有const来解决这个var问题,一切都很好。所以我不理解失败。

有什么问题const?除非有人使用 IE10,否则所有主流浏览器都支持这种语法。

有没有办法在不需要更改该节点模块的情况下解决这个问题?

更新

我已经暂时(或永久)用Butternut替换了 UglifyJS并且似乎可以工作。

0 投票
0 回答
85 浏览

javascript - 如何修改类名

我怎么能像这样破坏类名(ES6)

使用UglifyJS吗?我已经在 API 中给出了不同的 mangle 选项和组合,但仍然无济于事。在谷歌搜索上,几乎所有时间,搜索都会产生相反的结果:“如何保留类名”。请帮忙。谢谢。

0 投票
1 回答
365 浏览

javascript - Webpack's UglifyJsPlugin throws error with Node modules containing let

This is the relevant code (I'm using Vue.js' Webpack official template):

.babelrc:

webpack.prod.config.js

This is the error I get when I do npm run build:

ERROR in static/js/vendor.a6271913414e87e123c2.js from UglifyJs Unexpected token: name (_months) [./node_modules/calendar-js/index.js:56,0][static/js/vendor.a6271913414e87e123c2.js:90602,6]

This is the offending line:

(If I replace all the let's to vars the project is built without problems. And the const's don't seem to bother Webpack/UglifyJS.)

Do I need to configure something so that Webpack/UglifyJS build node modules containing let's? (The let's in my actual project don't give me problems.)

0 投票
1 回答
53 浏览

javascript - 是否可以阻止 UglifyJS 注入“_”作为替换名称?

有没有办法使用替换期间不应注入的字符串黑名单来配置 Uglify?

例如,Uglify 当前正在替换TypeError_

TypeError("Promise can't be resolved")=> _("Promise can't be resolved")

但是,我正在对 Uglified 代码运行静态后处理以提取标有_

_("Marked by the developer").

Uglify 的注入_替换 TypeError 在后处理提取期间会产生误报。

我知道可以一起停止函数/类名的修改,并防止保留名称的修改。

但是,有什么方法可以告诉 Uglify 进行定期修改,只是_在更换期间不应该注入?

0 投票
2 回答
5955 浏览

javascript - Lodash 不使用 Webpack 和 Webpack 4 进行 TreeShaking?

我想从生成的捆绑包中摇树lodash以及我未使用的函数multiplywebpack

我有 2 个主要文件app.js&math.js

它包含以下代码 -

应用程序.js

数学.js

webpack.config.js

我的npm脚本看起来像 -

完整的代码在https://github.com/deadcoder0904/webpack-treeshake

我试过使用 UglifyJSPlugin 但在生成的包中它仍然显示我未使用的multiply函数math.js。此外,从遗骸production生成的捆绑包很多,我也看到了很多东西。npm run prod20kBlodash