1

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

 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

我在哪里是个彻头彻尾的白痴(是的,就是这个词……)?谢谢。

4

2 回答 2

2

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

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

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

于 2011-07-31T16:50:51.113 回答
0

来自 uglifyjs文档

--overwrite——如果代码是从一个文件(不是从 STDIN)中读取的并且你传递了 --overwrite 那么输出将被写入同一个文件中。

所以也许是这样的:

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

将工作。

于 2011-07-31T15:43:40.320 回答