だから私のプロジェクトでは、私のjavascriptは
- サードパーティ ライブラリ (jquery、bootstrap、jquery プラグインなど)
- カスタム ライブラリ
- 間のビュー ファイル内の html にインラインで埋め込まれたコード
<script>$(function(){});</script>
かなり標準的なもの。
私の目標は、信頼できる自動化された方法を見つけて、個別のすべての JavaScript ファイル (約 25 ファイル) を実稼働用の 1 つのファイルに縮小することでした。
インストールbower
しましたが、外部ライブラリを最新の状態に保つ良い方法のようです。もインストールしgrunt
ました。ダウンロードしたすべてのファイルを指定されたディレクトリにコピーしconcat
、そのディレクトリを調べてそれらを結合し、最終的uglifyJS
にファイルを縮小する grunt で bower プラグインを使用しています。繰り返しますが、それはうなり声の標準的なセットアップのようです。
bower プラグインは、次のようなフォルダーを作成します。
vendorjs
- bootstrap.js
- jquery.js
- etc
concat
次に、このディレクトリから読み取ります。ファイルはアルファベット順であるため、jqueryの前にブートストラップするため、ファイルが間違った順序で結合されるため、役に立ちません。
私は RequireJS を認識していますが、私のニーズにはやり過ぎのようです。また、RequireJS の要件に準拠するには、すべての js を書き直す必要があるようです。
問題を解決するのに役立つ、不足している構成はありますか? 私はこれについて間違った方法で行っていますか?
より明確にするために、これは私の Gruntfile.js です。
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
bower: {
dev: {
dest: 'vendorjs',
options: {
stripJsAffix: true
}
}
}
concat: {
options: {
separator: ';'
},
dist: {
src: ['vendorjs/*.js'],
dest: 'vendor.js'
}
},
uglify: {
dist: {
files: {
'../../public/js/admin/vendor.min.js': ['vendor.js']
}
}
}
});
};