我在一个使用backbone-boilerplate的项目中工作,这个项目使用RequireJS来加载模块,使用JamJS来管理它们。我需要的config.js文件如下:
require.config({
deps: ["../vendor/jam/require.config", "main"],
paths: {
"backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage"
},
shim: {
"backbone.localStorage": {
deps: ['backbone']
}
}
});正如您可以从jam配置文件jam/require.config.js中看到的RequireJS加载配置,它指定了backbone、jquery和下划线。接下来是文件的一部分:
"packages": [
{
"name": "backbone.layoutmanager",
"location": "../vendor/jam/backbone.layoutmanager",
"main": "backbone.layoutmanager.js"
}
{
"name": "backbone",
"location": "../vendor/jam/backbone",
"main": "backbone.js"
}
],
"version": "0.2.11",
"shim": {
"backbone.layoutmanager": {
"deps": [
"jquery",
"backbone",
"lodash"
],
"exports": "Backbone.LayoutManager"
}
"backbone": {
"deps": [
"jquery",
"lodash"
],
"exports": "Backbone"
}
}
};我想要在我的config.js中指定backbone.localStorare库依赖于package部分中定义的backbone。同样,如果我按如下方式指定backbone路径,那么它找到了backbone库,但发现了一条错误消息,指出下划线未加载:
require.config({
deps: ["../vendor/jam/require.config", "main"],
paths: {
"backbone": "../vendor/jam/backbone/backbone",
"backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage"
},
shim: {
"backbone.localStorage": {
deps: ['backbone']
}
}
});我可以使用jamjs添加backbone.localStorage库,但是可用的包的版本是旧的,所以我更喜欢手动下载最后一个包并手动包含。
任何想法或帮助都将不胜感激。
发布于 2013-01-01 04:20:39
Backbone需要Underscore & jQuery
shim: {
"backbone": {
"deps": [ "underscore", "jquery" ],
"exports": "Backbone" //attaches "Backbone" to the window object
},
"underscore": {
"exports": "_"
}
}所以我认为你最好调整一下你的jam/require.config.js。
编辑:
接下来,你问题中的packages部分,它是jam/require.config.js的一部分吗?位置相对于jam/require.config.js的位置
"packages": ["backbone", "backbone.layoutmanager"]发布于 2013-01-04 04:31:34
多亏了asgoth我才能解决这个问题。我把文件放在下面。
有了这个配置,我可以将填充库放在我的config.js文件中,该文件依赖于require.config.js文件中jam管理的包。
the config.js
// Set the require.js configuration for your application.
require.config({
// Initialize the application with the main application file and the JamJS
// generated configuration file.
deps: ["../vendor/jam/require.config", "main"],
// Packeges defined at jam/require.config.js required by shim libraries
packages: [
{"name" : "backbone"},
{"name" : "jquery"}
],
paths: {
// Put paths here.
"codemirror" : "../vendor/codemirror-3.0/lib/codemirror",
"codemirror-markdown": "../vendor/codemirror-3.0/mode/markdown/markdown",
"backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage",
"bootstrap" : "../vendor/bootstrap-2.2.2/js/bootstrap"
},
shim: {
// Put shims here.
"codemirror-markdown": {
deps: ["codemirror"]
},
"backbone.localStorage": {
deps: ['backbone']
},
"bootstrap": {
deps: ['jquery']
}
}
});the require.config.js
var jam = {
"packages": [
{
"name": "jquery",
"location": "../vendor/jam/jquery",
"main": "jquery.js"
},
{
"name": "backbone.layoutmanager",
"location": "../vendor/jam/backbone.layoutmanager",
"main": "backbone.layoutmanager.js"
},
{
"name": "underscore",
"location": "../vendor/jam/underscore",
"main": "underscore.js"
},
{
"name": "backbone",
"location": "../vendor/jam/backbone",
"main": "backbone.js"
},
{
"name": "lodash",
"location": "../vendor/jam/lodash",
"main": "./lodash.js"
}
],
"version": "0.2.11",
"shim": {
"backbone.layoutmanager": {
"deps": [
"jquery",
"backbone",
"lodash"
],
"exports": "Backbone.LayoutManager"
},
"underscore": {
"exports": "_"
},
"backbone": {
"deps": [
"jquery",
"lodash"
],
"exports": "Backbone"
}
}
};
if (typeof require !== "undefined" && require.config) {
require.config({packages: jam.packages, shim: jam.shim});
}
else {
var require = {packages: jam.packages, shim: jam.shim};
}
if (typeof exports !== "undefined" && typeof module !== "undefined") {
module.exports = jam;
}https://stackoverflow.com/questions/14104835
复制相似问题