RequireJS CommonJS
RequireJS CommonJS
模块格式由CommonJS定义。它没有提供与其他JavaScript环境相同的浏览器选项。因此, CommonJS规范建议使用传输格式和异步请求。您可以轻松地将传统的CommonJS模块格式转换为RequireJS的格式。但是,所有模块都不会转换为新格式。以下列出了一些例外情况
-具有条件代码的模块执行所需调用。
-具有循环依赖关系的模块。
手动转换
可以使用以下语法手动将CommonJS模块转换为所需的格式
define(function(require, exports, module) { //place CommonJS module content here });
转换工具
使用转换工具内置的r.js可以将CommonJS模块转换为RequireJS所需格式,它内置于r.js文件中。下面是使用方法:
node r.js -convert path/to/commonjs/modules/ path/to/output
设置导出值
CommonJS允许通过将导出值指定为模块来设置导出值。导出RequireJS,支持从传递给定义的函数返回值的更容易的方法。这样做的优点是不需要导出模块函数参数,因此可以将它们从模块定义中删除,如下所示−
define(function (require) { var name = require('name'); //Define the module as exporting a function return function () { name.doSomething(); }; });
替代语法
指定依赖项的另一种方法是通过定义()的依赖项数组参数。但是,依赖数组中名称的顺序应该与传递给definition函数define ()的参数的顺序相匹配,如下所示
define(['name'], function (name) { return function () { name.doSomething(); }; });
从CommonJS包加载模块
要了解位置和程序包属性,请通过设置RequireJS配置将模块加载到使用RequireJS的通用程序包中。
优化工具
RequireJS中提供了优化工具,该工具可以将模块定义组合在一起,形成用于浏览器传递的优化捆绑包。它作为命令行工具运行,以便您可以将其用作代码部署的一部分。