Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UMD

本项目为 JavaScript 模块正式地设计和实现了通用模块定义(Universal Module Definition, UMD)API。通用模块能用在任何地方——用在客户端,服务端或其它地方。

UMD 试图为当下最流行的模块加载器(如 RequireJS 等)提供兼容性。多数情况下它以 AMD 为基础,特别地兼容了 CommonJS

变体

一般模块

  • amdWeb.js - 定义一个模块,用于 AMD 和浏览器全局变量。如果你想在使用 AMD 的同时导出一个全局变量—— 当加载的其它脚本仍需要那个全局变量时这很有用,则可以用 amdWebGlobal.js

  • returnExports.js - 定义一个模块,用于 Node、 AMD 和浏览器全局变量。如果你想在使用 AMD 的同时导出一个全局变量——当加载的其它脚本仍需要那个全局变量时这很有用,则可以用 returnExportsGlobal.js

  • commonjsStrict.js - 定义一个模块,用于 CommonJS 运行时,并且模块可以循环依赖。如果你想在使用 AMD 的同时导出一个全局变量——当加载的其它脚本仍需要那个全局变量时这很有用,则可以用 commonjsStrictGlobal.js

jQuery 插件

  • jqueryPlugin.js - 定义一个 jQuery 插件,用于 AMD 和浏览器全局变量。

有简单 Node/CommonJS 适配器的 AMD

用于这种情况:模块使用 AMD 风格,但是用在 Node 中并且通过 NPM 安装,不需要其它依赖来建立 AMD API。

此方案不允许使用 AMD 加载器插件,只支持基础的 JavaScript 模块依赖。它也不支持 AMD 的 callback-style require

  • nodeAdapter.js - 这种情况的最好选择:使用 AMD 风格,但是想让它用在 Node 中又不必借助其它库建立 AMD。
  • commonjsAdapter.js - 类似于 nodeAdapter.js,不过兼容更多的 CommonJS 运行时,并且支持循环依赖。

工具

构建工具

测试工具

资料

待办事项

  • noConflict。尽管有 AMD 加载器和构建工具,也应当可以获取指定版本,可能显示一个有 noConflict 选项的版本。
  • 变体能添加一些功能到 $ 上。尽管此时往往要依赖于 'jquery',但是如果开发者想使用其它模块,而不是真实的 'jquery',可以将此模块文件映射到 'jquery' 名字上。这是模块名字的一个优势,它们可以映射到不同的实现上。
  • 用法示例
    • 深入说明用法
    • 我们知道的问题和调整,但是不会放进 UMD 默认的模板

影响来源

本项目的 UMD 的基础模式派生自 @kriskowal 用在 Q promise 中的方案。

也受到早期 UMD 变体的影响,从 Kit-Cambridge 的 UMD 到 Addy Osmani, Thomas Davis, Ryan Florence 讨论的模式,到最近 James Burke 的 UMD。

许可

版权归 UMD 贡献者所有。

MIT 许可证 发布。

本文Ivan Yan 翻译,"署名-非商用-相同方式共享",意见反馈

About

UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages