前端模块化是目前的趋势,任何文件都可以当做一个模块,模块化中也有许多不同的标准。
1.CommonJS
CommonJS是JavaScript的模块化规范,也受到Node.js的广泛使用,它的导入导出语句如下
//导入
const a = require("A")
//导出
module.export = moduleA.func;
大部分npm包都实现了CommonJS规范,但缺点是无法直接运行在浏览器环境下,需要通过工具转化成ES5标准。
2.AMD
AMD的导出语法
// 定义一个模块
define('module', ['dep'], function(dep) {
return exports;
});
// 导入和使用
require(['module'], function(module) {
});
这种方式能异步加载依赖,但没有得到JavaScript的原生支持,要导入库之后才能使用。
3.ES6import语句
// 导入
import { readFile } from 'fs';
import React from 'react';
// 导出
export function hello() {};
export default {
// ...
};
这同样需要转化成ES5标准。