IntelliJ中的UglifyJS文件监视器在构建期间缩小已缩小的文件

时间:2015-08-16 23:12:40

标签: intellij-idea ant uglifyjs file-watcher

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

然而,当我运行Ant构建,并将缩小版本复制到构建工作目录时,观察者"帮助"在构建工作目录中创建它们的双重缩小版本(* .min.min.js),不行。

我已经将观察者的范围设置为“src'模块,但显然不会做你想象的那样,因为当Ant将文件复制到' build'中时会产生双打。模块。当我使用IDEA从src手动复制单个文件来构建时,就会发生这种情况。

我不知道如何将其设置为包含* .js但排除* .min.js,这是非常正确的事情。 (看起来如此明智,以至于Uglify应该将其内置,但我认为它并没有。)

除了摆脱观察者和编写脚本之外,还要进行缩小,或仅复制原始js版本并让观察者(重新)创建缩小版本,这是最好的方法吗?< / p>

2 个答案:

答案 0 :(得分:5)

得益于IDEA forum上有用的评论者,这项工作得以实现。关键是设置一个自定义范围,我之前尝试过,但失败了。

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

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

使'src'模块保持最新状态然后打开dlg并从主观察器配置窗口的下拉列表中选择它显然实际上不会被该模块过滤。单击... btn,然后从打开的dlg中选择它,另外我添加了一个显式文件名模式以排除已经缩小的文件。

现在工作得很好,就像我测试过的那样(在IDEA中都是最小的Ant测试和手动复制文件到'build')。

答案 1 :(得分:0)

这是一个古老的问题,也许观察者当时没有此功能。

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

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

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