2

我正在开发我的第一个基于 javascript 的 Web 应用程序,并且想利用我一直在研究的几个不同的框架,但是我在正确加载所有不同的库时遇到了很多麻烦。我正在尝试使用 Backbone 和 Underscore 以及 Twitter Bootstrap 中包含的 javascript(我将其用于我的 CSS/HTML 脚手架)。这是我加载所有脚本的惨痛尝试,但我仍然收到来自 require.js 的萤火虫错误

根据建议的答案,我已经编辑了我的设置。在我的 index.html 中:

<script data-main="../scripts/main.js" src="../scripts/require.js"></script>

在 main.js 中:

require.config({ 
    // Require is defined in /scripts, so just the remaining path (and no ext needed)
    'paths': {
        "bootstrap": "scripts/bootstrap",
        "jquery": "scripts/jquery",
        "underscore": "scripts/underscore",
        "backbone": "scripts/backbone"
},
'shim': 
{
    backbone: {
        'deps': ['jquery', 'underscore'],
        'exports': 'Backbone'
    },
    underscore: {
        'exports': '_'
    }
}   
}); 

require([
    'jquery',
    'bootstrap',
    'underscore',
    'backbone'
], 
function(bootstrap, $, _, Backbone){

    Person = Backbone.Model.extend({
        initialize: function () {
            alert("Welcome to this world");
        }
    });

    var person = new Person;

}); 

但我仍然从 require.js 中收到指向此链接 http://requirejs.org/docs/errors.html#scripterror的脚本错误

4

3 回答 3

3

乍一看好像是RequireJS的设置,看看这个:https ://github.com/jcreamer898/RequireJS-Backbone-Starter

你不需要在正文中定义你的脚本,那些应该通过 Require 加载,所以像:

您的主要 index.html:

<script src="path/to/require.js"  data-main="scripts/app">

然后data-main引用将指向/scripts/app.js以下内容:

require.config({ 
    // Require is defined in /scripts, so just the remaining path (and no ext needed)
    'paths': {
        "bootstrap": "libraries/bootstrap"
        "jquery": "libraries/jquery",
        "underscore": "libraries/underscore-min", 
        "backbone": "libraries/backbone-min"
    },
    'shim': 
    {
        backbone: {
            'deps': ['jquery', 'underscore'],
            'exports': 'Backbone'
        },
        underscore: {
            'exports': '_'
        }
    }   
    }); 

require([
    'bootstrap',
    'jquery',
    'underscore',
    'backbone'
], 
function(bootstrap, $, _, Backbone){

    // Start your application here...

});  
于 2013-01-16T14:32:08.707 回答
1

<script />使用 RequireJS,您应该在标签中包含的唯一库是require.js. 此外,您需要指定一个“主”javascript 文件,该文件应由 RequireJS 加载:

<script data-main="scripts/main.js" src="scripts/require.js"></script>

然后主文件应该加载其他库:

requirejs(['jquery','backbone'], function ($,Backbone) {
    //...
});

我建议您通读RequireJS API 文档并按照示例进行操作。

于 2013-01-16T14:31:09.797 回答
0

没有人指出您可能从这么多组件(每个组件都有要学习的概念)开始成为您的第一个 Javascript 项目。在非常简单的项目中,我会尝试分别探索每个库,对它们有一些经验,当你清楚地了解它们的作用时(文档并不总是给出它)你可以开始将它们全部组合起来。

可能不是您要寻找的答案,但我的经验在这里说话。祝你好运!

于 2013-01-16T14:37:40.400 回答