3

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 ビルドが成功し、開発データ メインが正しいファイルをロードできないことです。確かに、いくつかの構成設定を見落としています。

4

0 に答える 0