写插件写得有点累,总结篇文章休息一下
模块化规范目前应该是commonJS和ES6 module两种规范使用得比较多,
Node中采用的食commonJS(当然很多时候都可以混着用),而前端的话普遍用ES6 module了。
全栈做得多了,两种规范常常脑短路混淆,看着method undefined相当蛋疼,这里整理一下。
两种模式常用法比较
commonJS1
2
3
4
5
6
7
8
9
10
11
12//---- lib.js ----
function add (x, y) {
return x + y
}
module.exports = {
add
}
//---- main.js ----
const add = require('./lib').add
console.log(add(1, 2))
ES6 module1
2
3
4
5
6
7
8//---- lib.js ----
export function add (x, y) {
return x + y
}
//---- main.js ----
import { add } from './lib'
console.log(add(x, y))
模块化导出的话大致可以分为以下四种:
- 命名导出 (一个模块多个导出)
- 默认导出 (一个模块一个导出)
- 混合命名和默认导出
- 循环依赖
命名导出
1 | //------ lib.js ------ |
或者
1 | //------ main.js ------ |
默认导出
1 | //------ myFunc.js ------ |
混合命名和默认导出
1 | //------ underscore.js ------ |
循环依赖
1 | // lib.js |