2011-07-31 6 views
1

私は奇妙な問題に直面していますが、それは確かに難しいことではありませんが、何が原因であるかを知ることができません。そう、Capistranoはdeploy uglify-jsフックの出力を出力しますが、ファイルは書きません

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

簡単に見て周り、いくつかのテストでは、私はJavaScriptの圧縮のためのノードのuglify-JSを使用することを決定作られた:カピストラーノ経由で私のアプリをデプロイした後、私が使用して、YUIのコンプレッサーを介してすべての私のCSSを渡しています私は簡単に行った

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 

?ありがとう。 uglifyjs docsから

答えて

2

最後に、問題の内容が見つかりました。ここでは、コードの行は、それが最終的に動作する方法です:

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

はもちろん、--overwriteオプションは、それがされているはずだったいませんでした...

0

--overwrite - コードは(ないSTDINから)ファイルから読み取られ、あなたが--overwrite、出力が同じファイルに書き込まれます合格している場合。

ので、おそらくのようなもの:

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

は動作します。

+0

、私はドキュメントを読んでなかった、信じられないかもしれませんがもう試してみた。残念ながら、仕事をしなかった。 – pixelboy

+0

uglifyjsは、時刻に複数のファイル名を引数として取得できますか?もしそうでなければ、それは最初のJSファイルを処理しているだけかもしれません。おそらく、xargsコマンドに-n1を追加してみてください: "find#{current_path}/public/static/js/-type f -name '* .js' -print0 | xargs -n1 -0#{uglify_bin} "--overwrite また、findコマンドを手動で実行すると機能しますか? – sagi

+0

それ以上はありません。私がuglifyjs bootstrap.js> bootstrap.min.jsを実行すると、さらに不満を抱き、新しいファイルが作成され、完全に圧縮されます。私は困惑しています... – pixelboy

関連する問題