2010-12-10 8 views
10

複数のjsファイルを1つのファイルにまとめた基本的なメイクファイルを作成しようとしていますが、それらを圧縮します。jsファイルを結合して圧縮バージョンを作るメイクファイル

これまでのところ、私は圧縮されたバージョンを上手くすることができます。

# Set the source directory 
srcdir = src/ 

# Create the list of modules 
modules = ${srcdir}core.js\ 
      ${srcdir}sizzle.js\ 
      ${srcdir}json2.js\ 
      ${srcdir}ajax.js\ 
      ${srcdir}attribute.js\ 
      ${srcdir}content.js\ 
      ${srcdir}cookie.js\ 
      ${srcdir}css.js\ 
      ${srcdir}event.js\ 
      ${srcdir}json.js\ 
      ${srcdir}location.js\ 
      ${srcdir}opacity.js\ 
      ${srcdir}ready.js\ 
      ${srcdir}size.js\ 
      ${srcdir}init.js 

# Compress all of the modules into spark.js 
spark.js: ${modules} 
    java -jar yuicompressor.jar -o [email protected] $^ 

spark-dev.jsという非圧縮バージョンを追加する方法を知っている人はいますか?私は猫を使用しようとしているが、私は非常に遠くに取得していない。これは私がこれまで書いた初めてのメイクファイルです。

EDIT 私はあなたがこれは動作するはずです:-)ほとんどがあった猫

spark-dev.js: ${modules} 
    cat [email protected] $^ 
+0

具体的には、どのようにcatを使用しようとしましたか?そして何が間違っていた? – slowdog

+0

@slowdog編集したコードを入れました。 – Olical

+0

@slowdogああ、何がうまくいかなかったのかは、すべてのファイルの内容をエコーし​​て出力した。 'make:*** [spark-dev.js] Error 1' – Olical

答えて

9

でこのコードを試してみました:

spark-dev.js: ${modules} 
    cat > [email protected] $^ 

背景:catの機能は、(しようとすることです)コマンドラインにリストされているすべてのファイルを開き、その内容をstdoutにダンプします。 > [email protected]の構文は、シェルが "[email protected]ファイルを作成してこのコマンドのstdoutをそれに接続する"ことを意味すると理解しているので、今度は$^の内容を合わせて[email protected]にまとめます。

+0

うーん、 'makefile:23:*** missing separator。'というエラーが発生しました。やめる。' – Olical

+0

行頭に 'cat'コマンドでスペースではなくタブ文字があることを確認してください。タブが魔法のように空間になる傾向があるので、ブラウザの中にメイクファイルの断片をコピーするのは苦痛です... – slowdog

+0

さて、今は動作していますが、最初のコマンドを実行するだけで、両方を実行する方法はありますか? – Olical

関連する問題