问题标签 [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.
gulp - 丑化文件但不缩小某些字符串
是否可以使用带有 gulp 的 UglifyJS2 来有效地忽略某些字符串,例如:
本质上,我们在我们的 js 中使用 Liquid,就像我们在 Shopify 电子商务平台上一样。但是我们需要液体保持原样,以便 Shopify 可以处理液体。
非常感谢您提供的任何帮助!
javascript - 在 uglifyJS(或替代方法)中维护行号
我需要在维护行号的同时连接/缩小一些 javascript 代码。我不认为我可以使用源地图。
情况:我有一个生产站点,当堆栈跟踪出现给最终用户时,它会将错误报告回我的服务器,并且在不知道行号的情况下很难调试某些错误。
我似乎记得 uglifyJS2 中的一个选项,但看起来它可能已经被淘汰了(可能是因为源映射非常有用)。
任何缩小器都可以。如果有其他合理的选择适合我的情况,我愿意接受建议。
编辑:我知道我可以连接文件,但我想缩小/混淆它们。
javascript - 无法缩小此文件中的代码
我正在编写一个我想放在的 JavaScript 库npm
。我目前正在另一个项目中使用该库,并且已使用其 GitHub 存储库将其添加为依赖项:
我也在使用带有UglifyJsPlugin
. 现在,当我想构建我的项目时,我收到一个错误:
编译失败。
无法缩小此文件中的代码:
./packages/react-scripts/node_modules/react-web-component/src/index.js 行 18:0
错误命令失败,退出代码为 1。
这是我图书馆的问题。当我从我的部门(和我的代码)中删除它时,编译工作。
我无法弄清楚问题是什么,我的代码看起来很简单:
在retargetEvents
and getStyleElementsFromReactWebComponentStyleLoader
requires 里面有简单的module.export
命令。你可以在这里和这里查看他们的源代码。
我已经尝试使用 ES6 导出/导入命令发布我的库。
我的库的完整源代码(只有这 3 个文件)可以在https://github.com/LukasBombach/react-web-component找到
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]
可能是什么问题呢?
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)
我错过了安装依赖项还是什么?我尝试搜索此内容,但找不到任何解决问题的参考资料。
一切都好。在添加正则表达式参数之前,我可以毫无问题地丑化我的脚本。谢谢。
javascript - UglifyJS 抛出意外的标记:keyword (const) with node_modules
我开始的一个小项目使用声明变量的节点模块(通过npm安装)。const
运行和测试这个项目很好,但是执行 UglifyJS 时 browserify 失败。
意外标记:关键字 (const)
这是一个通用的 Gulp 文件,我已经成功地将它用于其他几个没有这个问题的项目(即没有那个特定的节点模块)。
gulpfile.js
我已经尝试通过在安装了 npm 的模块中替换所有const
来解决这个var
问题,一切都很好。所以我不理解失败。
有什么问题const
?除非有人使用 IE10,否则所有主流浏览器都支持这种语法。
有没有办法在不需要更改该节点模块的情况下解决这个问题?
更新
我已经暂时(或永久)用Butternut替换了 UglifyJS并且似乎可以工作。
javascript - 如何修改类名
我怎么能像这样破坏类名(ES6)
使用UglifyJS吗?我已经在 API 中给出了不同的 mangle 选项和组合,但仍然无济于事。在谷歌搜索上,几乎所有时间,搜索都会产生相反的结果:“如何保留类名”。请帮忙。谢谢。
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 var
s 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.)
javascript - 是否可以阻止 UglifyJS 注入“_”作为替换名称?
有没有办法使用替换期间不应注入的字符串黑名单来配置 Uglify?
例如,Uglify 当前正在替换TypeError
为_
:
TypeError("Promise can't be resolved")
=> _("Promise can't be resolved")
。
但是,我正在对 Uglified 代码运行静态后处理以提取标有_
:
_("Marked by the developer")
.
Uglify 的注入_
替换 TypeError 在后处理提取期间会产生误报。
我知道可以一起停止函数/类名的修改,并防止保留名称的修改。
但是,有什么方法可以告诉 Uglify 进行定期修改,只是_
在更换期间不应该注入?
javascript - Lodash 不使用 Webpack 和 Webpack 4 进行 TreeShaking?
我想从生成的捆绑包中摇树lodash
以及我未使用的函数multiply
webpack
我有 2 个主要文件app.js
&math.js
它包含以下代码 -
应用程序.js
数学.js
webpack.config.js
我的npm
脚本看起来像 -
完整的代码在https://github.com/deadcoder0904/webpack-treeshake
我试过使用 UglifyJSPlugin 但在生成的包中它仍然显示我未使用的multiply
函数math.js
。此外,从遗骸production
生成的捆绑包很多,我也看到了很多东西。npm run prod
20kB
lodash