我正在尝试构建使用Require.js,AMD样式模块的单页应用程序。
我已经在先运行的init.js
文件中配置了所有依赖项,路径和填充程序,然后调用了我的main.js
文件。
这是我的init.js
文件:
(function() {
'use strict';
var me = this;
me.require.config({
deps: ['backbone.marionette', 'main'],
shim: {
jquery: {
exports: 'jQuery'
},
underscore: {
exports: '_'
},
backbone: {
deps: [
'underscore',
'jquery'
],
exports: 'Backbone'
},
'backbone.marionette': {
deps: ['jquery', 'underscore', 'backbone'],
exports: 'Marionette'
}
},
paths: {
jquery: '../lib/jquery/dist/jquery.min',
html5shiv: '../lib/html5shiv/html5shiv.js',
underscore: '../lib/underscore/underscore-min',
backbone: '../lib/backbone/backbone',
'backbone.marionette': '../lib/backbone.marionette/lib/core/amd/backbone.marionette.min',
'backbone.wreqr': '../lib/backbone.wreqr/lib/amd/backbone.wreqr.min',
'backbone.babysitter': '../lib/backbone.babysitter/lib/amd/backbone.babysitter.min',
text: '../lib/requirejs-text/text'
}
});
}).call(this);
这是我的r.js
构建配置文件:
({
baseUrl: '../../development/js',
optimize: 'closure',
paths: {
requireLib: '../lib/requirejs/require'
},
mainConfigFile: '../../development/js/init.js',
out: '../../distribution/main-build.js',
include: ['requireLib']
})
当我构建时,我只在我的main-build.js
文件中内联Require.js。
由于某种原因,R.js不遵循require.config中定义的deps
属性。
require.config
文件中init.js
中描述的依赖关系的任何想法?提前致谢!
答案 0 :(得分:3)
我想知道这是否是您定义配置的方式。 init.js
是否有任何理由而不是仅将require.config
置于主?似乎没有必要创建一个匿名函数来封装它。
来自示例r.js build file:
第一个requirejs({}),require({}),requirejs.config({})或
将使用该文件中的require.config({})调用
对我来说一直有用的是遵循更标准的方法来调用require.config()
inside main.js