使 requirejs 模块符合 AMD 标准
Making requirejs modules AMD compliant
我目前正在构建一个应用程序,其中前端正在做很多繁重的工作。为了保持一切整洁有序,我想使用 requirejs。但是,要使用要求.js我使用的所有模块都应该符合AMD标准。
这意味着每次更新我使用的模块时,我都需要等待符合AMD标准的版本出现或自己制作一个(我目前不知道如何(。
这是一个真正的岔路口。
看看这个 https://github.com/jrburke/backbone/blob/optamd/backbone.js 在我看来,制作像 Backbone AMD 兼容的模块并不像将插件包装成通用函数那么简单。
是否有一种或多或少的直接方法可以使模块符合AMD标准?
他的版本非常防弹,所以它可以在各种情况下运行。 既然你知道你正在运行的环境以及什么是可用的/什么不是,那么你可以做出一些假设,让你做一些更直接的事情。
看看这个要点,我让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
- Amd,希望确保某个东西总是最后执行
- 让Webpack管理Quirky AMD定义的最佳方式
- 在哪里可以学习ECMAScript标准中尚未包含的JavaScript功能
- 如何允许web浏览器记住未以标准方式发送的表单字段
- AMD格式是否要求模块为单件
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- 命名约定的Web标准
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 用于编码标准的javascript工具
- 如何将es6导入转换为AMD需要
- Sencha Ext JS排序标准以字符串而不是JSON的形式发送
- LokiJS与标准Javascript对象访问
- backbone.js-映射标准url参数-使用多个参数
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- 如何将日期转换为标准格式
- AMD应用程序在浏览器中的加载速度是否快于CommonJS应用程序
- 使用Socket.io的异步模块加载(AMD)
- 使用AMD时未定义淘汰组件视图模型
- 使 requirejs 模块符合 AMD 标准