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

gulp-uglify - 你如何通过 --mangle-regex 选项使用 gulp-uglify 进行 uglify?

我正在尝试使用--mange-regexUglifyJS2 的 GItHub README 中记录的选项。问题是,我的构建使用gulp-uglify,并且没有清楚地记录我应该如何--mangle-regex在没有命令行的情况下使用。

我的目标是破坏“私人”标识符(匹配/^_/

我试过了:

这里什么都没做。一点帮助?

0 投票
1 回答
263 浏览

javascript - 如何使用自动 browserify+uglify 为浏览器提供 node.js 代码

我有一些带有 5 个文件的 node.js 的纯 js 代码:

然后 compress.js requires set.js 和 util.js,set.js requires 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 中执行类似的操作,或者我需要自己实现所有这些(在这种情况下,我应该研究哪些库工具?)

0 投票
1 回答
2780 浏览

javascript - 从缩小文件中提取单个 javascript 文件代码

我有一个 .js 文件列表,并且我有一个带有源映射的这些文​​件的缩小版本。已使用 UglifyJS 创建了缩小文件

是否可以从缩小文件中提取单个 js 文件的代码?也许通过阅读源地图?

例如:

是否可以从 body.min.js 中提取胃部.js 的缩小代码(字符串)?

0 投票
1 回答
2567 浏览

javascript - UglifyJS2 每次都解析错误(Unexpected token: name (Abide))

我尝试使用 uglifyJS2 将所有 JavaScript 文件(来自 ZURB Foundation 6,包括一些自定义文件)连接到一个文件中。

在即将到来的项目中,我不能简单地使用 ZURB 的 Yeti Launch 应用程序。所以我计划将 sass 用于scss文件(已经工作)和uglifyjs2JavaScript 文件通过命令行。

不幸的是,我无法通过在命令行中触发以下命令来让 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)

但是,如果我编写一些基本脚本,它就可以完美运行。有什么我做错了吗?有人能给我一个有用的提示吗?

0 投票
1 回答
2607 浏览

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
            • css/

如何告诉 babel 配置我的预设/插件在一个目录中,但我的 javascript 文件在另一个目录中?

0 投票
1 回答
373 浏览

javascript - JS Uglify2如何尽可能压缩文件?

我是 js uglify 2 https://github.com/mishoo/UglifyJS2的新手,我试图弄清楚如何尽可能多地压缩一堆 js 文件,但没有任何中断。到目前为止,我有这个:

有谁知道这是否正确,我还能更改/添加什么?

同样对于properties选项,它显然会改变类似a["b"]into的东西a.b,但是如果我有a[" s"]它会改变它a. s怎么办?因为那会破坏它。

谢谢

0 投票
0 回答
284 浏览

javascript - 如何使用 Node.js 和 uglify2 js 生成源映射?

我正在使用此代码

https://github.com/mishoo/UglifyJS2

生成一个组合的缩小的 js 文件,但现在我想生成一个源映射,所以我仍然可以使用缩小的文件进行调试,但是我找不到任何关于如何在 Node.js 代码中创建源映射的文档。有谁知道该怎么做?

谢谢

0 投票
2 回答
4749 浏览

javascript - 用于 JSON 缩小的 UglifyJs JavaScript API?

所以我通过 Node 循环浏览目录中的文件,并想用 UglifyJs 缩小它们。

该 API 对于 JavaScript 文件来说非常简单:

但是,我需要缩小的文件是 JSON 文件,所以这会产生 eval 错误。在命令行中,如果您正在缩小 JSON,您只需传递--expr,它将作为单个表达式进行评估。知道如何将其传递给 JavaScript API 的选项对象吗?

干杯。

0 投票
1 回答
121 浏览

node.js - browserify 后的 Uglify - 全局变量丢失

我在我的 package.json 中使用这个命令:

在 Initial.js 中,我有这个:

位置文件如下:

问题是,ConfigPosition 在丑化后会丢失,因为它最终由于某种原因不在全局范围内?这里会发生什么?

0 投票
0 回答
298 浏览

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 获得以下输出:

用于 logary-js 的 stacktrace-js 丰富器

当它应该完成这些单元测试时(当我运行 mocha 时会这样做,但在我在浏览器中运行时不会这样做):