使用 require.js 将 jQuery、Underscore 和 Backbone 作为 AMD 模块包含在内的最佳方法是什么?
我已经看到了许多不支持 AMD 的加载模块的变体,我想知道这样做的最佳做法是什么。
最终,我想编写这样的模块:
module.js:
define(["jQuery", "Underscore", "Backbone"], function($, _, Backbone) {
... module code here
}
但是使用 AMD 加载这些依赖项存在很多问题,因为它们并不全部兼容 AMD。
I've seen many variations to loading modules which do not support AMD yet, and I would like to know what is the best practice to do so.
Eventually, I would like to write modules like this:
module.js:
define(["jQuery", "Underscore", "Backbone"], function($, _, Backbone) {
... module code here
}
But there are a lot of problems with loading those dependencies using AMD since they are not all AMD compliant.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我创建了一个待办事项列表样板 Web 应用程序,它将所有模块加载为 AMD 模块(没有加载程序)。
看看:
https://github.com/ronreiter/webapp-boilerplate
I've created a todo-list boilerplate web app which loads all modules as AMD modules (without loaders).
Check it out:
https://github.com/ronreiter/webapp-boilerplate
Thomas Davis 在他的未更新示例中提供了一个更好的示例(imo),用于加载 jquery/underscore/backbone。首先查看加载器 此处
它使用此处找到的 RequireJS order 插件来加载模块同步地。
Thomas Davis has a better example (imo) for loading jquery/underscore/backbone in his non-updated example. Start by looking at the loader here
It uses the RequireJS order plugin found here to load the modules synchronously.
看一下这个示例。它很好地展示了如何将backbone 与requirejs 一起使用。它还展示了如何整齐地组织模型、视图和集合。
Take a look at this example. It nicely shows how to use backbone along with requirejs. It also shows how you can organize the model, view and collections neatly.
最新版本的 RequireJS 添加了使用非 AMD JS 文件的功能。
尝试一下。
The latest version of RequireJS adds the ability to use NON-AMD JS files.
Give that a try.
我对 AMD 不明白的一件事是,看起来它只在需要时才加载必要的 js,但是使用演示应用程序,当您访问应用程序进行第一页加载时,它会加载所有 js html css 文件。
One thing i don't understand about AMD is that looks like it loads necessary js only when it needs but with the demo application it loads all js html css files when you access the app for the first page load.