2009-07-17 10 views
0

ビルドプロセスですべてのjsスクリプトを1つに縮小して連結するにはどうすればよいのでしょうか。私は実際の縮小作業をしていますが、今ではHTMLページ内の参照を縮小されたファイルに設定する必要があります。 devバージョンでは、連結される5つのファイルへの参照があります。私はxmlpokeやそのようなものを入れておくべきですか?よりエレガントなテクニックはありますか?ビルドプロセスでjsを統合する

+1

あなたはどのような環境を使用していますか?スプロケットはこれを助けます(http://getsprockets.org/)。 – Tom

答えて

3

私はusallyそれを行う方法は、一緒にすべてのファイルCONCATで、YUIを使用して縮小化:

<target name="compress-js" unless="disable.js.compression"> 
    <java fork="true" spawn="true" jar="tools/yuicompressor-2.3.6/yuicompressor-2.3.6.jar"> 
     <arg value="-o" /> 
     <arg value="${js.home}/lib/lib.js" /> 
     <arg value="${js.home}/lib/lib.js" /> 
    </java> 
    </target> 

してからちょうどので、圧縮されたファイルを参照するヘッダを1つ持っている、とdev内disable.js.compressionを使用あなたのファイルは圧縮されません。スクリプトファイルが含まれてあなたのファイルで

0

、(あなたが使用され、これまでサーバサイド技術を使用して)これを行う

<% 
if (@[email protected]){ 
%> 
    <script src="file1"></script> 
    ... 
    <script src="file5"></script>  
<% 
} else { 
%> 
    <script src="@[email protected]"></script> 
<% 
} 
%> 

はその後(あなたがアリを使用すると仮定して)ビルドファイルに「置き換え」のantターゲットを使用しますあなたは、あなたのプロジェクトの中package.jsonファイルを作成しますBuildr

を使用することができます

<replace file="yourfile.jsp" token="@[email protected]" value="${IS_DEV}"/> 
<replace file="yourfile.jsp" token="@[email protected]" value="${YOUR_MINIFIED_FILE_PATH}"/> 
0

@ @ @ IS_DEVと@ MINIFIED_FILE_PATHを交換しますその後

{ 
    "name": "My Project Name", 
    "buildr": { 
     "compress": { 
      "js": true, 
      "css": true, 
      "img": false 
     }, 
     "bundle": { 
      "js": true, 
      "css": true 
     }, 
     "directories": { 
      "out": "./scripts/compressed", 
      "src": "./scripts/uncompressed" 
     }, 
     "files": { 
      "js": true, 
      "css": true, 
      "img": false 
     } 
    } 
} 

実行します:ルートディレクトリには、それはこのようなものに見えるよう

buildr 

上記圧縮および/スクリプト/ compressed`に./scripts/uncompressedディレクトリ内のすべてのCSSやJSファイルをバンドルします。ディレクトリ。

更新: GitHubのBuildrのURLを修正しました。

関連する問題