1

プロジェクトに Angular + Require を使用しています。次を使用してr.jsでアプリケーションをパッケージ化しようとすると:

node r.js -o app.build.config.js

ライブラリファイル以外はすべて機能します。指定されたパスでそれらを探す代わりに、ターゲットとして指定したフォルダーを基準にして依存関係が検索されます。

({
    appDir: "C:/dev/etc/",
    baseUrl: "javascript/core/",
    dir: "app-build/",
    modules: [
        {
            name: "application",
            out: "app.js"
        }
    ],
    findNestedDependencies: true
})
4

1 に答える 1

1

ライブラリ (Angular など) の場所を見つけるためにランタイム コードで使用されるのと同じ構成を共有する場合は、mainConfigFileオプションを使用できます。

...別の構成で値を複製する必要がないように、「メイン」の JS ファイル構成をビルド用に読み取る場合は、このプロパティをそのメイン JS ファイルの場所に設定します。そのファイルで見つかった最初の requirejs({})、require({})、requirejs.config({})、または require.config({}) 呼び出しが使用されます。

したがって、ビルド構成は次のようになります。

({
    appDir: "C:/dev/etc/",
    baseUrl: "javascript/core/",
    mainConfigFile: 'c:/dev/etc/js/config.js', // whatever your file is called
    dir: "app-build/",
    modules: [
        {
            name: "application",
            out: "app.js"
        }
    ],
    findNestedDependencies: true
})

私は同じ問題を抱えていましたが、上記で解決しました。mainConfigFile 行を追加する前に、r.js オプティマイザーから次のようなものを取得します。

依存関係のトレース: アプリケーション エラー: ENOENT、そのようなファイルまたはディレクトリはありません '/some/path/app-build/jquery.js' モジュール ツリー内: アプリケーション`

于 2013-06-13T18:55:51.473 に答える