使requirejs模块符合AMD标准

时间:2012-05-21 14:45:58

标签: javascript requirejs modularity commonjs js-amd

我正在构建一个应用程序,其中前端正在做很多繁重的工作。 为了保持整洁有序,我想使用requirejs。但是,要将require.js用于其全部范围,我使用的所有模块都应符合AMD标准。

这意味着每次更新我使用的模块时,我都需要等待出现符合AMD标准的版本,或者自己制作一个版本(我现在不知道如何)。

这是一个真正的岔路。

看看这个https://github.com/jrburke/backbone/blob/optamd/backbone.js,在我看来,制作像Backbone AMD兼容的模块并不像将插件包装成通用函数那样简单。

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

1 个答案:

答案 0 :(得分:2)

他的版本非常防弹,所以它可以在各种情况下运行。既然你知道你正在运行的环境以及可用的环境/什么不可用,那么你可以做一些假设,让你做一些更简单的事情。

查看这个要点,我将bacbkonejs作为AMD模块,假设jQuery,下划线和定义都在全局范围内,我不需要commonjs支持: 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通过填充程序配置直接支持您正在寻找的功能:https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim