- RequireJS 教程
- RequireJS - 首页
- RequireJS - 概述
- RequireJS - 环境设置
- RequireJS - 配置
- RequireJS - AMD 模块
- RequireJS - 定义函数
- RequireJS - 优化器
- RequireJS - jQuery
- RequireJS - NodeJS
- RequireJS - Dojo
- RequireJS - CommonJS
- RequireJS - 插件
- RequireJS 有用资源
- RequireJS - 快速指南
- RequireJS - 有用资源
- RequireJS - 讨论
RequireJS - CommonJS
模块格式由 CommonJS 定义。它是在不提供浏览器与其他 JavaScript 环境同等选项的情况下定义的。因此,CommonJS 规范建议使用 传输格式 和 异步 require。您可以轻松地将传统的 CommonJS 模块格式转换为与 RequireJS 兼容的格式。但是,并非所有模块都能转换为新的格式。一些例外情况列在下面:
- 包含用于执行 require 调用的条件代码的模块。
- 具有循环依赖关系的模块。
手动转换
CommonJS 模块可以通过使用以下语法手动转换为 RequireJS 格式:
define(function(require, exports, module) { //place CommonJS module content here });
转换工具
CommonJS 模块可以使用 r.js 项目 转换工具转换为 RequireJS 格式,该工具内置于 r.js 文件中。您应该指定要转换的文件路径和输出文件夹,如下所示:
node r.js -convert path/to/commonjs/modules/ path/to/output
设置导出值
在 CommonJS 中的一些系统中,允许通过将导出值赋值给 module.exports 来设置导出值。但是 RequireJS 支持更简单的方法,即从传递给 define 的函数中返回值。这样做的好处是您不需要 exports 和 module 函数参数,因此您可以像下面这样省略模块定义中的它们:
define(function (require) { var name = require('name'); //Define the module as exporting a function return function () { name.doSomething(); }; });
替代语法
指定依赖项的另一种方法是通过依赖项数组参数 define()。但是,依赖项数组中名称的顺序应与传递给定义函数 define() 的参数顺序匹配,如下所示:
define(['name'], function (name) { return function () { name.doSomething(); }; });
从 CommonJS 包加载模块
要了解模块在 CommonJS 包中加载的位置和包属性,请使用 RequireJS 通过设置 RequireJS 配置来加载。
优化工具
RequireJS 中有一个优化工具,可以将模块定义组合到一起,生成优化的包以供浏览器交付。它作为命令行工具运行,因此您可以将其用作代码部署的一部分。
广告