4

AMD形式で書かれた複雑なJSプロジェクトがあります。RequireJSを使用します。

私のシステムは、その機能をさまざまな外部サイトに含めることができるはずです。それを単一のjsファイルにコンパイルして、次のように含めたいと思います。

<script type="text/javascript" src="http://mysystem.com/core-build.js"></script>

外部サイトにrequirejsがあるかどうかはわかりません。そのため、requirejs自体をcore-build.jsに含める必要があるようです。コンパイルされたファイルは、環境に完全に依存しない必要があります。

反対側からは、外部サイト環境を再定義するべきではありません。私のシステムはjquery、knockoutを使用しており、これらのライブラリはシステムの目的でのみローカルに定義する必要があります。サイトのグローバル名前空間に影響を与えるべきではありません。

だから私の質問は、スクリプトを1つのファイルに最適化し、requirejs自体をそのファイルに含め、すべてをローカル名前空間にラップする方法です。

4

1 に答える 1

3

Grunt concatタスクを使用できます。

concat: {
    dist: {
        src: [
            "www/assets/js/libs/require.js",
            "dist/debug/app.js"
        ],

        dest: "www/app_build.js",

        separator: ";"
    }
}

Backbone Boilerplateでアプリのセットアップ例を確認できます(Backbone を使用していなくても)。

于 2013-01-08T21:17:41.200 に答える