我目前正在构建一个应用程序,其中前端正在做很多繁重的工作。
为了保持一切整洁有序,我想使用 requirejs 。但是,要充分使用 require.js,我使用的所有模块都应该符合 AMD 标准。
这意味着每次我使用的模块更新时,我都需要等待 AMD 兼容版本出现或自己制作一个(我目前不知道如何)。
这是一个真正的关闭。
看着这个 https://github.com/jrburke/backbone/blob/optamd/backbone.js,在我看来,制作像 Backbone AMD 兼容的模块并不像将插件包装成通用函数那么简单。
是否有一种或多或少直接的方法来使模块符合 AMD 标准?
最佳答案
好吧,他的版本非常防弹,因此可以在各种情况下运行。由于您知道您正在运行的环境以及什么可用/什么不可用,因此您可以做出一些假设,让您做一些更直接的事情。
查看这个要点,假设 jQuery、下划线和定义在全局范围内,我将 bacbkonejs 设为 AMD 模块,并且我不需要 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 现在通过 shim 配置直接支持您正在寻找的功能:https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim
关于javascript - 使 requirejs 模块符合 AMD 标准,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10687476/