模块加载原理
var module = {
exports: {}
};
(function(module, exports) {
exports.multiply = function (n) {
return n * 1000
};
}(module, module.exports))
var f = module.exports.multiply;
f(5) // 5000
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
require和import
1、区别
require / exports 是 CommonJS(在Node中实现)
import / export 是 ES2015 的模块
require是动态加载
import是静态加载
2、联系
import -> babel打包 -> require
CommonJS 格式转换的工具: /
3、示例
require
// 引入
const fs = require('fs')
// 导出
exports.fs = fs
module.exports = fs
- 1
- 2
- 3
- 4
- 5
- 6
import
// 引入
import fs from 'fs'
import {readFile} from 'fs'
// 导出
export default fs
export const fs
export function readFile
export {readFile, read}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
exports 和
exports 只能使用.语法向外暴露内部变量
例 =xxx
既可以通过点语法,也可以直接赋值一个对象
例 =xxx
参考 深入理解CommonJS!
其他文章
- require,import区别?