0

複数の requirejs プロジェクトを最適化するにはどうすればよいですか? たとえば、以下の構造があり、異なる場所/フォルダーに2 つあり、 main.js

build/
   build.js

dev/    
   index.php
    core/
      js/
       main.js
       libs/
          jquery.js


    local/
      js/
        main.js

私のbuild/build.js

({
    // Where my HTML and JS is stored.
    appDir: "../dev/",

    // Top-level directory containing my JS:
    baseUrl: "local/view/javascript/base/",

    // Where to build the optimized project.
    dir: "../dist",

    // Define the modules to compile.
    modules: [
        {
            name: 'main',

            mainConfigFile: '../dev/local/js/main.js'
        },
        {

            name: 'main',

            mainConfigFile: '../dev/core/js/main.js'
        }
    ]
})

次のような依存関係の圧縮または検索に失敗し続けます。

エラー: ENOENT、そのようなファイルまたはディレクトリはありません 'c:\wamp\websitename\dist\local\js\jquery.js

query.jsの場所はcore/js/libs/- で探しているのlocal\jsですか?

私は何を逃したのですか?

4

1 に答える 1

1

main設定に 2 回表示されますmodules。したがって、「そのようなオプションでモジュールを作成し、別のオプションでモジュールをr.js作成してください」と言っています。で同じファイルにする必要がある2つの異なるモジュールを作成するにはどうすればよいですか? できません。main../distmain../distr.js../dist

mainConfigFileまた、モジュール構成の中に入れることもできません。これは最上位のオプションであるため、モジュールごとの設定が必要な場合は、 を使用する必要がありますoverride。また、を設定しても、実際に最適化しようとしているモジュールmainConfigFileはわかりません。r.js

質問で説明した内容に基づいて、次のようなものが必要なようです。

({
    // Where my HTML and JS is stored.
    appDir: "../dev/",

    // Top-level directory containing my JS:
    baseUrl: "local/view/javascript/base/",

    // Where to build the optimized project.
    dir: "../dist",

    // Define the modules to compile.
    modules: [
        {
            // Give a unique name.
            name: 'main_local',

            // This module does not exist in the source so tell r.js to 
            // *create* it.
            create: true,

            // What we want in it.
            include: ['../dev/local/js/main.js'],

            // "Override" the top level mainConfigFile, just for this module.
            override: {
                mainConfigFile: '../dev/local/js/main.js'
            }
        },
        {
            name: 'main_core',
            create: true,
            include: ['../dev/core/js/main.js'],

            override: {
                mainConfigFile: '../dev/core/js/main.js'
            }
        },
    ]
})
于 2014-11-02T11:45:49.180 に答える