2016-12-08 14 views
1

NPMの使用方法をビルドツールとして探究しています。私は何をしたいのは、ファイルのリストを取得し、その後uglify-JSやSASSのようなコマンドにパイプこれらのために使用見つけることです:uglify-jsとsassのfindのパイプ出力を使用する

両方uglify-JSとSASSで
find ./views -type f -name '*.js' | uglifyjs xargs -o public/js/script.min.js 

私はこれのバージョンを取得しますエラー:

ERROR: can't read file: xargs

私は私は何をしようとしてることすら可能である場合、完全にはわからない、または私は別の方法でそれについて行く必要がある場合。に見つけるようなものを使用して、したがって、私の関心は、私はあなたの.jsファイルが複数のディレクトリに散らばっている場合は、大規模なプロジェクトに少し扱いに​​くくなってきていることがわかります

​​

:私は私がしてみたいものを達成することができます知っていますファイルのリストを取得します。

どのようなヘルプや正しい方向のポイントが大歓迎です、歓声!

答えて

1

あなたはfind + xargsの組み合わせを間違った方法で使用しています。それはxargs-I{}フラグで

find ./views -type f -name '*.js' | xargs -I{} uglifyjs "{}" -o public/js/script.min.js 

されている必要があり、"{}"findコマンドから返される出力ファイル名のプレースホルダになり、

あなたfindバージョンが(これは通常-print0オプションをサポートしている場合GNU findutilsの一部であり、コマンドのFreeBSDバージョンには存在しません)。これは、各ファイルの末尾に\0文字を埋め込むことによって、名前にスペースまたは特殊文字を含むファイルを処理するより効率的な方法です。今度はxargsのオプションを使って-0と入力し、その文字を区切り文字としてstdoutから読み込みます。

find ./views -type f -name '*.js' -print0 | xargs -0 -I{} uglifyjs "{}" -o public/js/script.min.js 
+0

ありがとうございました!唯一の問題は、uglifyjsではfindから返された最後のファイル名を縮小するためです。ふりだしに戻る! – mike

+0

@mike:それを感謝しますが、ロジックが 'xargs'で' find'出力を使うことを願っていますか? – Inian

+0

クリスタルクリア、大変感謝! – mike

関連する問題