Capistrano post部署uglify-js钩子输出但不写文件

时间:2011-07-31 15:35:57

标签: javascript capistrano minify uglifyjs

我正面临一个奇怪的问题,这肯定不难,但我似乎无法找出导致它的原因。在通过Capistrano部署我的应用程序后,我将所有的css通过yui压缩器,使用:

 run "find #{current_path}/public/static/css/ -name '*.css' -print0 | xargs -0 -I file #{cmd} file -o file"

快速浏览一下,一些测试让我决定使用node的uglify-js进行JavaScript压缩,所以我选择了一个简单的

uglify_bin = "uglifyjs"
run "find #{current_path}/public/static/js/ -type f -name '*.js' -print0 | xargs -0 #{uglify_bin}"

在同一个食谱中。部署似乎没问题,但是对我的js文件进行快速检查显示uglifyjs没有做到这一点。

以下是控制台输出的摘录:

  * executing "find /home/USER/www/project/current/public/static/js/ -type f -name '*.js'| xargs uglifyjs --overwrite"
servers: ["project.com"]
[project.com] executing command
command finished in 127ms

我在哪里是一个完全白痴(是的,这是......)?感谢。

2 个答案:

答案 0 :(得分:2)

终于找到了问题所在。这是最终工作方式的代码行:

run "find #{current_path}/public/static/js/ -name '*.js'| xargs -I file #{uglify_path} --overwrite file"

显然,--overwrite选项不应该是......

答案 1 :(得分:0)

来自uglifyjs docs

  

- 覆盖 - 如果从文件中读取代码(而不是从STDIN中读取)并传递--overwrite,则输出将写入同一文件中。

或许类似于:

uglify_bin = "uglifyjs"
run "find #{current_path}/public/static/js/ -type f -name '*.js' -print0 | xargs -0 #{uglify_bin} --overwrite"

会工作。