模块化总结

71 阅读1分钟

1.ES6模块化(静态编译)

在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。

1.1模块中导出数据
// module1.js
export var firstName = 'Michael';
export var lastName = 'Jackson';
export var year = 1958;
// module2.js
function say() {}
function eat() {}

export default {
  say,
  eat
}
导入模块
import {firstName, lastName, year} from './module1.js';
import {say, eat} from './module2.js';

2.CommonJS模块化(运行时编译)

在文件a.js中用exportsmodule.exports导出的对象(方法、变量),可以在另一个文件b.js中通过require('./a')引用。

  1. module.exports 初始值为一个空对象 {}
  2. exports 是指向的 module.exports 的引用
  3. require() 返回的是 module.exports 而不是 exports
//people.js
module.exports = {name: '叔叔'};
exports = {name: '老阿姨'};
//main.js
let people = require('./people');
console.log(people);//输出:{name: '叔叔'}