javascript - 使 requirejs 模块符合 AMD 标准

标签 javascript requirejs modularity commonjs js-amd

我目前正在构建一个应用程序,其中前端负责大量繁重的工作。 为了保持一切整洁有序,我想使用 requirejs .但是,要充分使用 require.js,我使用的所有模块都应该符合 AMD 标准。

这意味着每次更新我使用的模块时,我都需要等待 AMD 兼容版本的出现或自己制作一个(我目前不知道该怎么做)。

这是一个真正的岔路口。

看着这个https://github.com/jrburke/backbone/blob/optamd/backbone.js在我看来,制作像 Backbone 这样符合 AMD 标准的模块并不像将插件包装到通用函数中那么简单。

是否有或多或少直接的方法使模块符合 AMD 标准?

最佳答案

好吧,他的版本非常坚固,因此可以在各种情况下运行。由于您知道自己运行的环境以及可用/不可用的环境,因此您可以做出一些假设,让您做一些更直接的事情。

查看这个要点,假设 jQuery、underscore 和 define 在全局范围内并且我不需要 commonjs 支持,我将 bacbkonejs 设为 AMD 模块: https://gist.github.com/2762813

我只是补充

define(function() {
  var obj = {};
  obj._ = window._;
  obj.jQuery = window.jQuery;

到顶部和

.call(obj);
   return obj.Backbone;
});

到底部。


感谢@SimonSmith 让我注意到 UseJS。 UseJS 是一个 AMD 加载器插件,允许您加载非 AMD 格式的模块而无需修改它们。我自己还没有用过,但看起来很有希望:https://github.com/tbranyen/use.js/

更新

RequireJS 2.0 现在直接支持您通过 shim 配置寻找的功能:https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim

关于javascript - 使 requirejs 模块符合 AMD 标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10687476/

相关文章:

javascript - 如何检测表中动态行的列中的值变化?

javascript - 原型(prototype)继承 : Calling super constructor in sub "class" constructor function

javascript - 仅实现 FormulaJS 客户端?

javascript - 处理向服务器发出 HTML/JS 请求时的 302 状态代码?

java - 如何模块化(大型)Java 应用程序?

javascript - Drupal 7 和内联 Jquery

javascript - Mongoose .save() 和使用 update() 之间的区别

requirejs - RequireJS/r.js 构建文件中的模块和包属性之间存在混淆

java - 参数化 ZonedDateTime 方法

java - 无需子类继承减少代码重复