问题标签 [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 回答
87 浏览

webpack - uglifyjs mangle 道具“.source”错误

我在使用 UglifyJS 时遇到了一些问题。
当我通过这个命令使用 uglifyjs 时:
uglifyjs -o live_ugly.js --compress --mangle-props 1 --mangle -r "$,require,exports" live.js

我给了我一个错误:Cannot read property 'source' of undefined

此行的代码是:new RegExp(this.Qd.source + "|" + /\d{1,2}/.source)

uglify 之前的代码是:new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source

我也有 ReactJS 代码。我试图破坏的源代码以前通过 webpack。

我在这里做错了什么?

0 投票
0 回答
91 浏览

webpack - UglifyJS 试图破坏 RamdaJS 产生错误

我正在尝试使用 UglifyJS 破坏我的代码。
我包括的库是(一些)Ramda、React、Underscore、react-select ...

但是,当我修改代码时,在 RamdaJS“输出”部分它给了我错误:

我与 webpack 一起使用的 uglifyjs 配置是:

我正在使用 ramda 0.13。

有没有人知道问题是什么?
如果我不破坏代码,一切正常并通过我所有的测试

0 投票
1 回答
211 浏览

angularjs - 具有缩小的 Angular 模拟

使命:

我有一个遗留的、未缩小的 Angular 1 应用程序,其中包含数千个测试,都通过了。我在代码中引入了缩小和修改。如果我将库和应用程序代码分开,测试将继续工作。但是,我无法破坏应用程序代码,因为这样做会将合同破坏回 libs 文件。

我希望能够破坏应用程序代码并保持单元测试正常工作。

当前状态:

我已经创建了两条路径来规避这个问题,但我并不满意,因为单元测试并没有真正触及将要投入生产的代码......他们正在触及为避免重整问题而创建的中间立场。

路径 1

一条路径输出 alibs.min.js和 an app.min.js。里面libs.min.js有 Angular、Underscore 等 - 使用它们提供的缩小版本。本质libs.min.js上只是一堆已经缩小的文件连接在一起。 app.min.js包含我们的应用程序代码,已缩小但未损坏。

路径 2

第二个路径创建一个combined.min.js文件。这就是生产。在这个文件中,依次是 Angular、Underscore 等,然后是我们的应用程序代码。所有这些都未缩小(包括库)连接到这个文件中,然后一起被修改/缩小,以便我们得到一个可以引用我们的应用程序代码和库代码的单一源映射。这在浏览器中有效,但单元测试中断,因为combined.min.js不包含所需的仅测试库angular-mocks

问题:

由于 Karma 加载了这些文件,因此针对路径一进行测试是可行的。这很好,但它不是将要投入生产的实际代码,所以我不认为这是一场胜利。

  1. libs.min.js
  2. angular-mocks(未缩小 - 并且可以绑定到 Angular,因为我们使用的是提供的缩小版本)
  3. app.min.js(缩小但未损坏,因为损坏将合同破坏回 libs.min.js)
  4. *.spec.js

测试路径 2 不起作用,因为我们按以下顺序加载内容:

  1. 组合.min.js
  2. 角度模拟(未缩小)
  3. *.spec.js

卡布姆。我们的应用程序代码已经连接了它的绑定,所以 angular-mocks 为时已晚。除了将库和应用程序加载到单独的文件中(例如在路径一中)之外,我看不到任何解决此问题的方法。

一些测试通过了,但那些试图引用我们依赖 angular-mocks 的任何东西的测试都失败了。

我知道我可以提供一个输入源映射,app.min.js以便我可以单独缩小/修改应用程序代码(但始终反对libs.min.js),但我不确定这是最好的路线。我想把东西保存在一个大文件中,但如果没有其他办法,看起来我用来破坏/缩小(UglifyJS)的库支持输入源映射......

哦。此外,我们没有使用 Grunt 或 Gulp。只需直接 NPM 即可完成所有这些工作。但是如果有一个 grunt 或 gulp 库能以某种方式解决这个问题,我可以对其进行 NPM 化。

0 投票
1 回答
192 浏览

twig - Symfony 资产 - 可以在开发加载原始文件中吗?

我在 Symfony 3 上安装了assets项目。我正在使用它来将所有 css 合并在一起并缩小。

树枝模板中的用法:

配置:

在 prod 模式下,一切都按预期工作。Assetic 从路径加载 css 文件/assets/someDir/some.css,生成的缩小文件(css 或 js)位于默认资产路径/css/allCss.css/js/allJs.css.

但是在开发模式下assetic从/assets/someDir/some.css/css/some.css(每个文件而不是缩小)生成新文件并从那里加载css文件。

问题:

我如何/assets/someDir/some.css在开发模式下加载原始文件?

因为在这种情况下,我必须在每次更改任何 css 或 js 后运行php bin/console assetic:dump --env=dev,这是不可接受的。

0 投票
1 回答
551 浏览

angular - Angular 2 Uglify JS 没有被破坏

我试图丑化我的代码,这样我的变量名和函数名就不会出现在生产文件中。

据我所知,Angular CLI (ng build -prod) 没有完成这项工作。所以我尝试了 gulp-uglify。我仍然看到我的大部分函数都有全名:

也不适用于 uglify js 演示:http: //lisperator.net/uglifyjs/transform

0 投票
1 回答
292 浏览

symfony - 使用 Assetic Bundle 时将选项传递给 UglifyJS2

作为标题,在使用 Assetic 时有没有办法将选项传递给 UglifyJS2?具体来说,我需要通过该--comments选项。

我试图将选项添加到我的 config.yml: 中的 bin 设置中bin: "%uglifyjs_bin_path% --comments",但这不会运行,因为它试图在路径中包含 --comments:

[Assetic\Exception\FilterException]
运行时出错:
'/usr/bin/nodejs''/usr/local/bin/uglifyjs --comments''-o''/tmp/assetic_uglifyjs2_outyYVBye''/tmp/assetic_uglifyjs2_ind932Xh ' 错误输出:
module.js:328

抛出错误;
错误:找不到模块'/usr/local/bin/uglifyjs --comments'

在 Function.Module._resolveFilename (module.js:326:15)
在 Function.Module._load (module.js:277:25)
在 Function.Module.runMain (module.js:442:10)
在启动时(节点。 js:136:18)
在 node.js:966:3

0 投票
1 回答
319 浏览

c# - 如何将 UglifyJS 2 配置为仅在 C# 中连接?

我在我的 C# 项目中将UglifyJS2用于Bundle Transformer NuGet 包,我只想能够连接我的 JS 文件,而无需为我的 QA 环境缩小它们,但我不知道该怎么做。可能吗?

这是我当前的 Bundle Transformer 的 Web.config 部分:

0 投票
0 回答
394 浏览

javascript - uglifyJS mangle 道具与 lodash 中断

我正在尝试使用 UglifyJS 破坏属性名称。每当我通过将 lodash 包含到我的代码中时,var _ = require('lodash')我都会收到错误消息:Uncaught Error: Cannot find module 'lodash'

这是我的 package.json 文件的示例:

我以为通过保留“lodash和”之类的词_require我可以绕过这个问题,但它一直没有效果。这是一个中断的代码测试示例:

0 投票
1 回答
383 浏览

uglifyjs - 我无法使用 UglifyJS2 CLI 从父目录生成本地源映射

我正在尝试www/js/app.js使用www/js/app.min.jssource-map:进行缩小www/js/app.min.js.map

我也想app.min.js包含该行//# sourceMappingURL=app.min.js.map

这是否可以在不使用cd命令的情况下实现?

到目前为止,这是唯一对我有用的东西: cd www/js && uglifyjs app.js --mangle --compress --stats --source-map app.min.js.map --output app.min.js && cd ../../

我一直在引用https://github.com/mishoo/UglifyJS2#usage --source-map [options]但似乎没有任何效果,所以也许我遗漏了一些明显的东西。

0 投票
0 回答
359 浏览

javascript - UglifyJs 输出行长度限制

在使用 webpack 构建基于反应的应用程序时,我正在使用以下代码段。我需要将输出文件的最大行长度限制为 7000 个字符,并且以下配置有助于做到这一点,除非捆绑包中有 CSS 行。CSS 行来自一个字符串文字,它超出了这个限制。如何将限制应用于捆绑包中嵌入的 CSS?

从 npm 构建期间使用的任务 -