JS模块化——AMD、CommonJS和ESModules
JavaScript模块化是一种将代码分割成独立、可复用的模块的方法。主要有以下三种规范:
- AMD (Asynchronous Module Definition): 异步模块定义,通过
require.js
实现,允许JavaScript模块的异步加载。
// 定义一个模块
define('module', ['dep1', 'dep2'], function(dep1, dep2) {
return function() {
dep1.doSomething();
dep2.doSomethingElse();
};
});
// 加载一个模块
require(['module'], function(module) {
module.doSomething();
});
- CommonJS: 在Node.js环境中使用,模块是同步加载的,每个文件是一个作用域。
// 引入模块
var dep1 = require('dep1');
var dep2 = require('dep2');
// 导出模块
module.exports = function() {
dep1.doSomething();
dep2.doSomethingElse();
};
- ES Modules (ECMAScript Modules): 内置于现代浏览器和JavaScript引擎,使用
import
和export
关键词。
// 导出模块
export function doSomething() {
// ...
}
// 导入模块
import { doSomething } from './module.js';
doSomething();
AMD和CommonJS主要用于服务器端和浏览器端的环境,而ES Modules主要是现代浏览器和JavaScript引擎支持的标准模块系统。
评论已关闭