问题标签 [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-uglify - 你如何通过 --mangle-regex 选项使用 gulp-uglify 进行 uglify?
我正在尝试使用--mange-regex
UglifyJS2 的 GItHub README 中记录的选项。问题是,我的构建使用gulp-uglify
,并且没有清楚地记录我应该如何--mangle-regex
在没有命令行的情况下使用。
我的目标是破坏“私人”标识符(匹配/^_/
)
我试过了:
和
这里什么都没做。一点帮助?
javascript - 如何使用自动 browserify+uglify 为浏览器提供 node.js 代码
我有一些带有 5 个文件的 node.js 的纯 js 代码:
然后 compress.js require
s set.js 和 util.js,set.js require
s map.js 依次require
是 vector.js 和 util.js 现在我想从我自己的简单 Web 服务器(快速应用程序)为浏览器提供此代码. 我有哪些选择?我是新手,所以我有一些基本问题,而不是那么基本的问题。如果我想从我的 html 页面中包含 compress.js,我想知道可能的选项。据我了解,我可以修改代码以与 node.js 和浏览器兼容。我用什么来做,require-js?当代码与服务器端和客户端兼容时,如何在 nodejs 中调用它?另一种选择是使用 browserify 并生成可以在客户端使用的 compress.js 版本。
然后,有 uglify-js 可以缩小 compress.js 文件(并创建相应的地图文件),对吧?
现在我的目标是保持我的 js 代码不变并且可以从浏览器访问。为此,据我了解,我必须执行服务器端代码,自动浏览这些文件(例如,以正确的顺序连接它们)并通过 uglify 传递结果并即时提供结果。根据我的理解,如果我只包含一个文件 compress.js 并尝试在 chrome 中调试该代码,我将在 chrome 调试器中看到,就好像我将所有这些文件原样包含在 chrome 中一样,使用 nodejs 样式的方式来包含依赖项. 我是对的,我需要使用哪些工具/库来实现这一目标?
下一步是以这样一种方式缓存该即时转换的结果,以便如果我修改任何包含的文件(例如,如果我在实时服务器上编辑它们或完全替换为修改后的版本)所有依赖文件将自动需要被再生。这可能发生在 compress.js 的下一个 GET 上(例如,在内部我需要在我的应用程序依赖图中记住并在每个 GET 上验证它GET /compress.js
),或者,我需要添加某种文件系统/操作系统事件挂钩当任何文件发生更改时,在我的应用程序中触发一个事件,并且该事件将触发重建我的 compress.js(或任何其他文件)的浏览器化+丑化版本。是否有任何现有的选项可以在 node.js 中执行类似的操作,或者我需要自己实现所有这些(在这种情况下,我应该研究哪些库工具?)
- 看起来这会产生我想要的东西(带地图的浏览+丑化版本):https ://github.com/gulpjs/gulp/blob/master/docs/recipes/browserify-uglify-sourcemap.md
javascript - 从缩小文件中提取单个 javascript 文件代码
我有一个 .js 文件列表,并且我有一个带有源映射的这些文件的缩小版本。已使用 UglifyJS 创建了缩小文件
是否可以从缩小文件中提取单个 js 文件的代码?也许通过阅读源地图?
例如:
是否可以从 body.min.js 中提取胃部.js 的缩小代码(字符串)?
javascript - UglifyJS2 每次都解析错误(Unexpected token: name (Abide))
我尝试使用 uglifyJS2 将所有 JavaScript 文件(来自 ZURB Foundation 6,包括一些自定义文件)连接到一个文件中。
在即将到来的项目中,我不能简单地使用 ZURB 的 Yeti Launch 应用程序。所以我计划将 sass 用于scss
文件(已经工作)和uglifyjs2
JavaScript 文件通过命令行。
不幸的是,我无法通过在命令行中触发以下命令来让 uglifyjs2 连接脚本:
uglifyjs foundation-sites/js/*.js -o foundation-stes/dist/foundation.min.js
即使我只输入一个文件(如foundation.abide.js),它也会引发以下错误:
Parse error at foundation-sites/js/foundation.abide.js:10,6
Unexpected token: name (Abide)
Error
at new JS_Parse_Error (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:1526:18)
at js_error (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:1534:11)
at croak (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2026:9)
at token_error (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2034:9)
at unexpected (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2040:9)
at semicolon (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2060:56)
at simple_statement (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2240:73)
at eval (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2113:19)
at eval (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2073:24)
at block_ (eval at <anonymous> (/usr/local/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:2353:20)
但是,如果我编写一些基本脚本,它就可以完美运行。有什么我做错了吗?有人能给我一个有用的提示吗?
javascript - uglifyjs 一个 javascript 类 - 意外的令牌错误
我正在尝试使用类编写一些新的 javascript,但在尝试使用 uglifyjs2 缩小代码段时出现“'Unexpected token: name (Utils)'”错误。
这是我的课
尝试使用 uglifyjs 进行缩小时,出现以下错误
'意外的令牌:名称(Utils)',
它对应于第一行中的U ,“class Utils {”。
我知道 uglifyjs2 缩小新的 ES6 标准似乎存在一些问题,但我不知道这是否是问题所在,或者只是我缺少一些语法。我试过 uglifyjs2 和 grunt-contrib-uglify ,我得到了同样的错误。
如果是 ES6 问题,有没有人知道如何正确缩小新的 JS 类的可用解决方案?我尝试在我的 grunt 中使用 Babel (grunt-babel) 将我的代码从 ES6 转换为 ES5,但这实际上并没有改变代码结构。ES5 中类的等价形式是什么?这是我翻译后的代码。
更新
好的。所以我没有在我的 Gruntfile 中安装和加载正确的 Babel 预设和插件。所以我安装了它们,但它仍然无法正常工作。在 Babel 运行时,我收到错误
运行“babel”任务
这是我的 Gruntfile 配置。我的 node_modules 和 gruntfile 在我的应用程序源文件所在的其他地方。
我的应用程序树看起来像这样,我在 etc/ 目录中运行 grunt。我所有的 javascript 文件都在 js 子目录中,向下很多层。
- 树干/
- ETC/
- 节点模块/
- Gruntfile.js
- 包.json
- Python/
- 马文/
- 网络/
- 静止的/
- js/
- es6/
- 实用程序.js
- es6/
- css/
- js/
- 静止的/
- 网络/
- 马文/
- ETC/
如何告诉 babel 配置我的预设/插件在一个目录中,但我的 javascript 文件在另一个目录中?
javascript - JS Uglify2如何尽可能压缩文件?
我是 js uglify 2 https://github.com/mishoo/UglifyJS2的新手,我试图弄清楚如何尽可能多地压缩一堆 js 文件,但没有任何中断。到目前为止,我有这个:
有谁知道这是否正确,我还能更改/添加什么?
同样对于properties
选项,它显然会改变类似a["b"]
into的东西a.b
,但是如果我有a[" s"]
它会改变它a. s
怎么办?因为那会破坏它。
谢谢
javascript - 如何使用 Node.js 和 uglify2 js 生成源映射?
我正在使用此代码
https://github.com/mishoo/UglifyJS2
生成一个组合的缩小的 js 文件,但现在我想生成一个源映射,所以我仍然可以使用缩小的文件进行调试,但是我找不到任何关于如何在 Node.js 代码中创建源映射的文档。有谁知道该怎么做?
谢谢
javascript - 用于 JSON 缩小的 UglifyJs JavaScript API?
所以我通过 Node 循环浏览目录中的文件,并想用 UglifyJs 缩小它们。
该 API 对于 JavaScript 文件来说非常简单:
但是,我需要缩小的文件是 JSON 文件,所以这会产生 eval 错误。在命令行中,如果您正在缩小 JSON,您只需传递--expr
,它将作为单个表达式进行评估。知道如何将其传递给 JavaScript API 的选项对象吗?
干杯。
node.js - browserify 后的 Uglify - 全局变量丢失
我在我的 package.json 中使用这个命令:
在 Initial.js 中,我有这个:
位置文件如下:
问题是,ConfigPosition 在丑化后会丢失,因为它最终由于某种原因不在全局范围内?这里会发生什么?
webpack - Webpack umd 似乎破坏了 stacktrace-js 的功能
我们正在尝试将 stacktrace-js 与很棒的 logary-js(我的项目)一起使用,但是在通过 webpack 之后,它似乎不再起作用了。
这是 webpack 的配置https://github.com/logary/logary-js/blob/c7fdec752e5ce33843d458e9e6c590657005c60a/webpack.config.js
这是让我担心的输出(npm run build
):
在这个分支上,我尝试禁用 UglifyJs 无济于事。
npm run test
给出这个输出(剪断):
所以看起来开发中的 webpack-mocha 集成工作得很好。但是,当我在发布后使用其他 JS 的 logary 时,我会从 stacktrace-js 获得以下输出:
当它应该完成这些单元测试时(当我运行 mocha 时会这样做,但在我在浏览器中运行时不会这样做):