模块化总结
2018-10-28 本文已影响0人
孙新强
Node CommonJS
1.CommonJS是 “运行时加载”
2.require() 是加载整个 “对象”
3.最终导出的是module.exports,exports只是对module.exports的一个全局引用,exports.myFunc是modules.exports.myFunc的简写
- exports
// src/dog/index.js
exports.bar = function (a, b) {
console.log('wang wang!!');
}
exports.age = 10;
//test/test.js
var {bar, age} = require('../src/dog');
var add2 = require('../src/add2');
bar(); // wang wang !!
age; // 10
add2.bb; // 123
- module.exports
// src/add.js
module.exports = function (a, b) {
return a + b ;
}
// src/dog.js
module.exports = {
age: 5,
bar: function () {
console.log('wang!');
}
}
//test/test.js
var add = require('../src/add');
var dog = require('../src/dog');
add(1, 2); // 3
dog.age; // 5
dog.bar(); // wang!
es6
- 没法引用 ES6 模块本身,因为它不是对象
// 从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载
import { stat, exists, readFile } from 'fs';