javascript - 一种使用 require 加载 Backbone 堆栈的方法

标签 javascript

这是我如何使用纯 HTML 脚本标签来完成此操作 SO Question on CDN suggestions 。这将是一个串行加载(下划线->jquery->backbone),它支撑着页面的其余部分。

 <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
 <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 <script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.10/backbone-min.js"></script>

如何使用 require.js 或类似的非阻塞方法加载这些库?

引用(API 链接)

最佳答案

jquery 是 AMD 友好的,因此您只需在 require.js 配置中需要它即可

主干和下划线不再对 AMD 友好,因此您有以下选择:

  1. 您可以将它们包含为“外部”,并使用 shim 分配正确的依赖项(请参阅此处 the docstutorial )

  2. 或者您可以使用两个支持 AMD 的库的稍作修改的版本。您可以在 this repository 中找到它们.

  3. 使用旧版本的主干和下划线。 (不推荐)


注意:如果您选择匀场路由,请记住这些库不会异步加载。


这是一个使用库的更改版本的工作示例:

require.config({
    enforceDefine: true, //Only libraries AMD Friendly will be loaded
    urlArgs: "bust=" + (new Date()).getTime(), //for development, forces browser to clear the cache
    paths: { // relative paths (to the current file main.js)
        "es5":               'libs/es5-shim/es5-shim',
        "jquery":            'libs/jquery/jquery',
        "jqueryThreeDots":   'libs/jquery/plugins/jquery.ThreeDots',//A jquery plugin
        "underscore":        'libs/underscore/underscore.amd',
        "underscore.string": 'libs/underscore/underscore.string',
        "backbone":          'libs/backbone/backbone.amd',
        "text":              'text',
        "mediator":          'libs/backbone/plugins/backbone.mediator',
        "bootstrap":         'libs/bootstrap/bootstrap.min',
        "rangy":             'libs/rangy/rangy-core.amd',
    },
    shim: {
        "bootstrap": {
            deps: ["jquery"],
            exports: "$.fn.popover"
        }
    }
});

使用垫片的示例:

require.config({
    enforceDefine: true,
    urlArgs: "bust=" + (new Date()).getTime(),
    paths: {
        "jquery": 'http://code.jquery.com/jquery-1.9.1.min.js'
    },
    shim: {
        backbone: {
            deps: ["underscore", "jquery"], // Backbone dependencies
            exports: "Backbone" // variable exported
        },
        underscore: {
            exports: "_"
        }
    }
});

关于javascript - 一种使用 require 加载 Backbone 堆栈的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14759090/

相关文章:

javascript - 尝试使用 Mocha 测试时模型无法正确加载

javascript - 删除运算符在 Javascript 中不起作用

javascript - Rails - 当其他用户被分配新客户端时向他们发送警报(无需刷新其页面)

javascript - 滚动按钮 jQuery 不能立即工作

javascript - 将所有代码放入 "window.onload"中与仅将函数名称放入 "window.onload"中有何区别?

javascript - 使用 Redux-thunk 调用操作不起作用

javascript - 为什么点击div后形成循环?

javascript - Evernote OAuth 登录 Javascript

javascript - 使用移动设备拖动在 Canvas 上呈现的图像会导致图像消失

javascript - 如何在reactjs es6中删除监听器