如何使用require.js设置一个简单的骨干/木偶项目及其依赖项
How to set up a simple Backbone/Marionette project and their dependencies using require.js
我一直在阅读很多这方面的内容,甚至买了一本专门关于使用 require.js 设置木偶应用程序的书,并在 github 上遵循了这个看起来很简单的小操作方法...... 然而,由于某种原因,我似乎无法像启动一个空的木偶项目这样简单的事情来工作!
我的项目结构如下:
- 根目录
- 模型
- 视图
- 库
- 保姆.js
- 骨干.js
- jquery.js
- 木偶.js
- 要求.js
- 文本.js
- TPL.js
- 下划线.js
- 雷克尔.js
- 收集
- 模板
- 索引.html
- 主.js
这是我的索引.html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script data-main="main" src="libs/require.js" type="text/javascript"></script>
</body>
</html>
而我的主要.js:
require.config({
paths:{
jquery:"libs/jquery",
underscore: "libs/underscore",
backbone: "libs/backbone",
text: "libs/text",
tpl: "libs/tpl",
marionette: 'libs/marionette',
'backbone.wreqr' : 'libs/wreqr',
'backbone.babysitter' : 'libs/babysitter'
},
shim:{
underscore:{
exports: "_"
},
backbone:{
deps: ['underscore','jquery'],
exports:'Backbone'
}
}
});
require(['marionette'],function(Marionette){
var Application = new Marionette.Application();
Application.on("initialize:after", function(){
alert("Application has started!");
});
Application.start();
});
我从他们的网站下载了AMD/RequireJS版本的木偶.js
在浏览器中打开索引.html时,我在控制台中看到一个错误"引用错误:未定义主干"(在木偶上.js第 20 行)
我做错了什么?
木偶
需要骨干,所以要么将木偶添加到你的垫片或你的需要调用中,
shim:{
marionette : ['backbone'],
...
}
或
require(['backbone', 'marionette'],function(Backbone, Marionette){
我认为您的骨干垫片可能设置不正确。在查看Marionette的AMD版本时,它依赖于"骨干",而不是"骨干"。
(function (root, factory) {
if (typeof exports === 'object') {
var underscore = require('underscore');
var backbone = require('backbone');
var wreqr = require('backbone.wreqr');
var babysitter = require('backbone.babysitter');
我遇到了同样的问题,并在这个问题上花费了几个小时。我在深入研究主干源代码版本 1.1.2 后发现的问题:
(function(root, factory) {
// Set up Backbone appropriately for the environment. Start with AMD.
if (typeof define === 'function' && define.amd) {
define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
// Export global even in AMD case in case this script is loaded with
// others that may still expect a global Backbone.
root.Backbone = factory(root, exports, _, $);
});
// Next for Node.js or CommonJS. jQuery may not be needed as a module.
} else if (typeof exports !== 'undefined') {
var _ = require('underscore');
factory(root, exports, _);
// Finally, as a browser global.
} else {
root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));
}
}(this, function(root, Backbone, _, $) {
通过删除前两个条件并仅保留第三个条件:
root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));
我能够使用 rjs 工作制作我的优化代码
这是我的需求js配置
require.config({
baseUrl: "/static/src/scripts/js",
paths: {
jquery: 'vendors/jquery/jquery',
underscore: 'vendors/underscore/underscore',
backbone: 'vendors/backbone/backbone',
marionette: 'vendors/backbone/backbone.marionette'
},
shim: {
jquery: {
exports: "jQuery"
},
underscore: {
exports: "_"
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
marionette: {
deps: ['backbone'],
exports: 'Marionette'
}
}
});
希望对你有帮助
相关文章:
- 如何将本地依赖项添加到npm项目中
- 为什么react/redux前端项目在package.json中包含生产依赖项
- 如何在jasmine测试中为有角度的项目注入依赖项
- 具有依赖项目源的超级开发模式
- 如何使用require.js设置一个简单的骨干/木偶项目及其依赖项
- 角度种子项目 - 角度加载器-js 依赖项
- 为什么要使项目依赖项保持最新
- 同时开发一个npm包和一个依赖它的项目
- 如何在javascript项目中找出依赖关系
- 如何在npm项目中找到节点gyp依赖项(.或任何依赖项)
- 如果我使用r.js优化我的RequireJS项目,我必须改变路径和依赖配置吗?
- Java web应用程序的项目结构,javascript提供依赖管理、单元测试、ci以及对maven和eclipse的支
- 谷歌关闭项目依赖
- 使用npm打包javascript项目,并将其划分为节点模块来创建一个依赖树
- 如何使用webpack在项目中要求自定义依赖
- 如何使用我的项目bower.json在Bootstrap中限制jQuery依赖关系
- 使用RequireJS和AMD来发布包含内部依赖项的项目
- 在google-closure项目中为依赖项生成脚本标签的最快方法是什么?
- 什么时候(编译/运行时)一个依赖的节点模块被链接到项目时,它是require()'
- 动态拉入angular项目的依赖项