9

次のようにrequire-config.jsでいくつかのパスを構成しました。

var require = {
    baseUrl: '/javascript',
    paths: {
        'jquery': 'jquery/jquery-1.8.1.min'
        // etc. -- several paths to vendor files here
    },
}

展開のために最適化を機能させようとしています。ドキュメントには、次のようなbuild.jsが必要だと書かれています。

({
    baseUrl: 'javascript',
    paths: {
        'jquery': 'jquery/jquery-1.8.1.min'
    },
    name: 'main',
    out: 'main-build.js'
})

build.jsの代わりに(またはそれに加えて)オプティマイザーに構成ファイルを読み取らせる方法はありますか?パスが変更された場合に、両方のファイルで同じ構成のパスを手動で保持する必要はありません。

実行しようとしまし node r.js -o path/to/require-config.jsたが、「不正な形式:SyntaxError:予期しないトークン変数」というエラーがスローされました。

編集:明確にするために、require-config.jsファイルは構成のみであり、メインモジュールではありません。これを行ったのは、同じ構成を使用できるが、単体テスト時に別のメインモジュールをロードできるようにするためです。

4

2 に答える 2

11

設定オプションの定義方法を調整する必要があります。RequireJSドキュメントから取得:

オプティマイザーのバージョン 1.0.5+ では、mainConfigFile オプションを使用してランタイム構成の場所を指定できます。メインの JS ファイルへのパスを指定すると、そのファイルで見つかった最初の requirejs({})、requirejs.config({})、require({})、または require.config({}) が解析され、オプティマイザに渡される構成オプションの一部として使用されます。

したがって、基本的には、r.jsビルド ファイルを、ブラウザーとも共有される構成オプションに向けることができます。

mainConfigFile オプションを利用する必要があります

于 2013-01-03T22:59:02.887 に答える
1

他の方の参考までに:

https://github.com/jrburke/r.js/blob/master/build/example.build.js

ビルド設定 (ここで config.js lib インクルージョンを繰り返す必要はありません):

baseUrl: 'app',
name: 'assets/js/lib/almond', // or require

// Read config and then also build it into the app
mainConfigFile: 'app/config.js',
include: ['config'],

// Needed for almond (and does no harm for require)
wrap: true,
于 2013-07-30T19:51:22.063 に答える