我对CommonJS,AMD和RequireJS仍然很困惑。即使阅读了很多。
我知道CommonJS(以前称为ServerJS)是用于在浏览器之外使用该语言时定义一些JavaScript规范(即模块)的组。CommonJS模块规范具有某些实现,例如Node.js或RingoJS,对吗?
CommonJS,异步模块定义(AMD)和RequireJS之间有什么关系?RequireJS是CommonJS模块定义的实现吗?如果是,那么AMD是什么?
我对CommonJS,AMD和RequireJS仍然很困惑。即使阅读了很多。
我知道CommonJS(以前称为ServerJS)是用于在浏览器之外使用该语言时定义一些JavaScript规范(即模块)的组。CommonJS模块规范具有某些实现,例如Node.js或RingoJS,对吗?
CommonJS,异步模块定义(AMD)和RequireJS之间有什么关系?RequireJS是CommonJS模块定义的实现吗?如果是,那么AMD是什么?
CommonJS不仅限于此-它是一个为JavaScript定义通用API和生态系统的项目。CommonJS的一部分是模块规范。Node.js和RingoJS是服务器端JavaScript运行时,是的,它们都基于CommonJS Module规范实现模块。
AMD(异步模块定义)是另一种模块规范。RequireJS可能是AMD最受欢迎的实现。与CommonJS的主要区别在于AMD指定异步加载模块-这意味着模块是并行加载的,而不是通过等待加载完成来阻止执行。
因此,AMD通常更多地用于客户端(浏览器)JavaScript开发中,而CommonJS模块通常用于服务器端。但是,您可以在任何一种环境中使用任何一种模块规范-例如,RequireJS提供了在Node.js中运行的说明,而browserify是可以在浏览器中运行的CommonJS Module实现。
报价单
AMD:
CommonJS:
AMD
强制执行的define()包装器。