2

だから私のプロジェクトでは、私の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']
            }
        }
    }
});

};

4

1 に答える 1