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

gruntjs - 在 Grunt 中使用 uglify 设置目标文件夹

使用如下所示的 Grunt 代码和文件夹结构,当我运行时grunt uglify,结果是输出在文件夹\js\src内创建子文件夹结构\min,其中最深的文件夹 ( src) 将包含缩小文件。但我希望在文件\min夹根目录中创建缩小文件。

如果我将dest参数值设置为空:`,则文件将在与文件夹相同的文件夹中创建src

如果我将dest参数值设置为 ://js/min/js/min/,则不会创建任何内容。

如何直接在文件夹的根目录中生成缩小文件min

在此处输入图像描述

0 投票
0 回答
251 浏览

requirejs - RequireJS 使用 r.js 和 Uglify 进行优化

我们有一个基于多个文件/模块的应用程序。我们使用 r.js 和 uglify2 来优化构建。它当前进行空白删除和缩小,这很棒。

要求- 我们能否以某种方式混淆文件中使用的函数名称,以使包含此自定义文件的其他 RequireJS 模块不会中断并继续使用“混淆”的函数名称?

非常感谢!

0 投票
1 回答
641 浏览

angularjs - 丑化和破坏 $scope 变量和函数

有没有办法在不破坏代码的情况下实现这一点?我试过 mangleProperties 但我的代码确实不起作用,即使在使用正则表达式和“控制器作为”功能(https://daveceddia.com/convert-scope-to-controlleras/)之后也是如此。

0 投票
1 回答
64 浏览

uglifyjs2 - UglifyJS2 以编程方式调用 minify 函数

我想知道我是否可以以minify编程方式调用 main 函数。

我能够运行compress中定义的相同代码,但是替换UglifyJS.CompressorwithUglifyJS.minify不起作用。

这是因为我想传递在 UglifyJS2 的 README 中定义的相同选项,而不是compress.

请注意,我在 Nashorn 中运行代码,而不是在 Node.js 中,因此这类似于浏览器环境。

0 投票
2 回答
206 浏览

google-chrome - 如何使用 uglifyjs2 和 Ionic 加载源地图?

对于我的 Ionic 应用程序,我正在使用一些 gulp 任务来缩小 Javascript 代码。Uglifyjs2 缩小代码:

这会生成文件

app.min.js因此以//# sourceMappingURL=app.min.js.map

在我的 index.html 中,我有以下参考:

ionic run当我通过加载文件构建和运行我的应用程序时app.min.js。但是,缺少源地图。Chrome 似乎设置正确(选项Enable JavaScript source maps已设置)。

我该如何解决这个问题?传输文件的网络列表是否应该包含源映射的条目?我可以以某种方式手动强制 Chrome 加载地图吗?

0 投票
1 回答
51 浏览

javascript - 为什么 UglifyJS 将 `someFunction` 转换为 `(0, v.someFunction)`?

我正在使用 UglifyJS 来编译一个 React Web 应用程序,我注意到它似乎包含了很多函数调用,特别是从另一个模块/文件导入的函数,使用(0,). 这有什么意义?

示例:它转译了这个

对此

0 投票
0 回答
58 浏览

playframework - 将参数从 sbt-rjs 传递给 uglify

我正在使用游戏!2.5.8,我正在使用默认使用 uglify2 的 sbt-rjs 缩小我的 JS 文件。缩小是非常基本的(代码仍然可读),我想改进它。

在 sbt-uglify 的github 页面上,有一个缩小选项表,其中大多数默认情况下是关闭的。

有没有办法将这些参数从 sbt-rjs 配置(在 build.sbt 或 main.js 中)传递给 uglify2?

谢谢

0 投票
1 回答
464 浏览

javascript - Babel 将 new Request (fetch-api) 转换为函数调用,导致 Chrome 出错

我编写了一个单独的 API 库,我将其保留为纯 ES6(带有生成器等),但它依赖于 isomorphic-fetch 库(因此它可以在节点和浏览器上下文中使用)。

在另一个项目中使用 webpack 2 导入它时,一切都很好,直到我尝试完成缩小/优化过程。由于生成器语法不受支持,UglifyJS 不会处理它。所以我尝试通过 babel 作为 webpack 加载器运行该库,但是现在尝试在浏览器中运行代码时,出现以下错误:

Uncaught (in promise) TypeError: Failed to construct 'Request': Please use the 'new' operator, this DOM object constructor cannot be called as a function.

似乎我在这里陷入了第 22 个问题,我不确定为什么 Babel 保留某些本地类而不是 Request 类。

非常感谢任何帮助,一直在我的桌子上敲打我的头。

0 投票
0 回答
54 浏览

javascript - 我的顶级匿名函数中的局部变量不再变短(UglifyJS2)

我使用JSCompress站点(使用 UglifyJS2)来压缩我的 JavaScript 代码。但看起来它不再在顶级匿名函数中缩短我的变量名称了。这只发生在我的特定代码中,而对于任何其他类型的代码,它会压缩所有局部变量的名称。

这就是我要的:

从 ^ 到:

但是在这个顶级函数中却发生了相反的情况(checkES6,features等...,这些名称没有被压缩,但它们的变量是“本地的”):

当我压缩它时,我看到所有局部变量都具有相同的名称(嵌套范围除外),checkES6checkES6supportssupportsfeaturesfeatures,这个顶级匿名函数中的每个局部变量都没有在其名称中进行压缩。

我仍然想压缩这些名称。这是怎么回事?

0 投票
0 回答
239 浏览

javascript - 为什么我看不到使用源映射 (uglify2) 的原始代码?

我正在尝试使用 uglify-js 优化器 (v2) 优化我的源文件。我有这个项目:测试项目

我正在使用它来优化app.js文件:

请注意,我原始文件转换为优化(优化的文件名 = 原始文件名)。可能这是问题所在?

之后,我在 Chrome 中打开应用程序并得到以下信息: 在此处输入图像描述

所以我看到消息“检测到源地图”,我也看到//# sourceMappingURL=app.js.map了正确的值。但我没有看到原始文件代码(优化前)。为什么?

此外,我看到另一个localhost:8080域并/js/app.js在其中。但它是空白的。

难道我做错了什么?还是我误解了什么是源图?我认为这是一个工具,可以让我在生产中查看/调试代码(优化/丑化/缩小等),就像我在源代码中所做的那样。我错了吗?

我也有这个测试项目:lets-try-es6-features。我只是尝试在此处启用源映射(仅通过向-s构建命令添加密钥)。奇迹般有效。我可以调试类、箭头函数等(如源代码中的所有内容)。当我优化我的简单 es5 文件时,我什至看不到任何接近这种行为的东西。为什么?