Require.js - 共享r.js配置不使用正确的'paths'值

时间:2012-10-12 19:44:09

标签: javascript requirejs

我在我的开发require.js环境和r.js构建工具之间使用了'mainConfigFile',就像Require.js multipage example中的设置一样。模块在开发中需要并加载正常,但是当我尝试通过r.js运行相同的配置文件时,它会搜索一个目录更高的模块路径。 (例如。它应该在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'
}

这是我的common.js共享配置文件,位于js / lib / 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'
    }
}); 

最后,这是位于js / lib / product.js中的product.js模块,它在开发过程中从data-main加载。

require(['./common'], function() {
    require(['./product/main', 'inline']);
}); 

有趣的问题是当我从每个配置值中删除“../vendor/”时 - 除了'vendor'属性本身 - r.js构建成功且开发数据主要无法加载正确的文件。当然,我忽略了一些配置设置。

0 个答案:

没有答案