Require.js マルチページの例mainConfigFile
のセットアップと同様に、開発用の require.js 環境と r.js ビルド ツールの間に「 」を使用しています。モジュールは開発時に必要であり、正常にロードされますが、r.js を介して同じ構成ファイルを実行しようとすると、1 つ上のディレクトリにあるモジュール パスが検索されます。(たとえば、build/vendor/backbone.js を検索する必要があるときに、build/backbone.js で backbone.js のビルド バージョンを検索します)。
ここに私の r.js ビルド json 設定があります:
{
baseUrl: "js/lib",
mainConfigFile: 'js/lib/common.js',
dir: 'build',
paths: {
'stripe': 'empty:'
},
modules: [
{
name: "common",
include: [
'underscore',
'backbone',
'backbone.validation',
'vendor/spin',
'vendor/transit',
'globals'
]
},
{
name: 'product',
exclude: [ 'common' ]
}
],
optimize: 'none'
}
これは、js/lib/common.js にある私の common.js 共有構成ファイルです。
requirejs.config({
baseUrl: '/js/lib',
paths: {
'config': 'empty:',
'inline': 'empty:',
'stripe': '//js.stripe.com/v1/stripe',
'vendor': '../vendor',
'underscore': '../vendor/underscore',
'backbone': '../vendor/backbone',
'backbone.validation': '../vendor/backbone.validation',
'text': '../vendor/text'
}
});
最後に、開発中に data-main からロードされる js/lib/product.js にある product.js モジュールを次に示します。
require(['./common'], function() {
require(['./product/main', 'inline']);
});
興味深い問題は../vendor/
、'vendor' プロパティ自体を除く各構成値から " " を削除すると、r.js ビルドが成功し、開発データ メインが正しいファイルをロードできないことです。確かに、いくつかの構成設定を見落としています。