【问题标题】:Output minified javascript file to a different directory with YUI Compressor File Watcher in IntelliJ使用 IntelliJ 中的 YUI Compressor File Watcher 将缩小的 javascript 文件输出到不同的目录
【发布时间】:2017-09-27 12:08:24
【问题描述】:

我在 intellij 中使用 YUI Compressor JS 作为我的文件观察器来缩小我的 javascript 文件。当我设置“参数”和“刷新的输出路径”参数时,压缩器工作正常,如下所示:

Arguments = $FileName$ -o $FileNameWithoutExtension$.min.js   
Output path to refresh = $FileNameWithoutExtension$.min.js 

然后它会在原始文件的文件夹中生成缩小的文件。我在这里无法实现的是我希望将缩小的文件放在其他目录中。
到目前为止,我尝试使用以下值设置上述两个参数:

Arguments= $FileName$ -o $FileParentDir$-min\$FileDirName$\$FileNameWithoutExtension$.min.js   
Output paths to refresh = $FileNameWithoutExtension$.min.js

但它随后会生成 javascript 文件的缩小版本并将其覆盖到原始文件;提示我“文件缓存冲突”对话框,如下所示。
File Cache Conflict Dialoge Image
我的原始 javascript 文件位于 'webapp/resources/js' 文件夹中,但我希望在 'webapp/resources/js-min' 文件夹中生成与 'webapp/resources/js' 文件夹中相同结构的缩小文件。

【问题讨论】:

    标签: javascript intellij-idea minify yui-compressor file-watcher


    【解决方案1】:

    在参数文本框中,键入: $FileName -o /your_custom_directory/ 参数传递给 compresssor 并将你的输出文件放在 your_custom_directory 中,然后在“要刷新的输出路径”中插入 your_custom_directory,这将传递给 phpstorm 用于索引文件

    对我来说是这样的

    js>my_js_file js>min>结果

    参数:$FileName$ -o $FileDir$/min/$FileNameWithoutExtension$.min.js 输出刷新路径:/min

    【讨论】:

      【解决方案2】:

      您是否尝试过 $FileParentDir$/js-min/$FileNameWithoutExtension$.min.js?

      【讨论】:

      • 不,它不会保留目标目录中的结构;-o $ProjectFileDir$/webapp/resources/js-min/$FileDirPathFromParent(js)$$FileNameWithoutExtension$.min.js 更好,但无论如何都不能在 Windows 上工作
      • @Oksana 我已经尝试了一堆路径模式,其中包含这样的宏和其他宏,但不幸的是它们都不起作用。正如我在上面 lena 回答的评论部分中所说,当您的路径中包含“:”时,就会出现问题。只有相对路径才有效。
      【解决方案3】:

      你在 Windows 上吗? YUI Compressor 似乎不接受 Windows 绝对路径作为 -o 值...当我运行 java -jar yuicompressor-2.4.8.jar -v -o C:\WebstormProjects\untitled3\webapp\resources\js-min\sub\subsub\f3.min.js f3.js 时,没有产生 f3.min.js,而是修改了原始文件:( 从https://github.com/yui/yuicompressor/issues/78 线程的最后一条评论中我可以看出,该错误应该在 yuicompressor-2.4.9 中修复。但是https://github.com/yui/yuicompressor/releases没有这个版本,评论中提供的jar链接好像已经过时了…… 一般来说,我强烈建议使用不同的 JS 压缩器,因为 YUI Compressor 看起来已经死了 - 自 2013 年以来没有更新

      【讨论】:

      • 是的,我在 Windows 上。我想你是对的,无论我用宏尝试什么路径都有问题,这是因为 YUI Compressor 固有的问题,其中包含“:”的路径。令人惊讶的是,github中的项目代码库中也有针对此问题的提交,但似乎没有捆绑在任何版本中。 link
      • 你会推荐什么其他的 JS 缩小器?
      • 我建议UglifyJS; Closure也可以考虑
      猜你喜欢
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多