3

我在 IntelliJ IDEA 中设置了一个 UglifyJS 文件观察器,它在我编辑时效果很好——我修改了源 js,缩小版本会自动在它旁边创建。

但是,当我运行 Ant 构建并将缩小版本复制到构建工作目录时,观察者“有用地”在构建工作目录中创建它们的双重缩小版本 (*.min.min.js),这不好。

我已将观察程序的范围设置为“src”模块,但显然这并没有达到您的预期,因为当 Ant 将文件复制到“构建”模块时会创建双打。当我使用 IDEA 手动将单个文件从 src 复制到构建时也会发生。

我看不到如何设置它以包含 *.js 但排除 *.min.js,这确实是正确的。(似乎很明智,Uglify 应该内置它,但据我所知,它没有。)

除了摆脱观察者并编写构建脚本进行缩小,或仅复制原始 js 版本并让观察者(重新)创建缩小版本之外,这里最好的方法是什么?

4

2 回答 2

9

感谢IDEA 论坛上一位乐于助人的评论者,让这项工作得以实现。关键是设置一个自定义范围,我之前尝试过但失败了。

对于任何有类似需求的人,我最终得到的模式是这样的:

file[src]:*.js&&!file:*min.js*

使“src”模块成为当前模块,然后打开 dlg 并从主观察程序配置窗口的下拉列表中选择它,显然实际上并没有被该模块过滤。单击 ... btn,然后从打开的 dlg 中选择它,另外我添加了一个明确的文件名模式来排除已经缩小的文件。

现在工作得很好,据我测试(最小的 Ant 测试和手动将文件复制到 IDEA 中的“构建”)。

于 2015-08-17T16:46:51.143 回答
0

这是一个老问题,也许当时 Watchers 没有这个功能。

使用 JetBrains 的“宏”代码可以消除“min.min.min.js”问题。

$FileNameWithoutAllExtensions$.js -m --source-map -o $ContentRoot$\prod\js\$FileNameWithoutAllExtensions$.min.js

我也总是将“范围”设置为“当前文件”;为什么要在未更改的文件上运行 uglify?(我假设任何第 3 方 JS 库已经被缩小了)。

于 2019-08-21T20:36:28.983 回答