我正面临一个奇怪的问题,这肯定不难,但我似乎无法找出导致它的原因。在通过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
我在哪里是一个完全白痴(是的,这是......)?感谢。
答案 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"
会工作。