## CommonJS ### exports 和 modules.exports的关系 ``` // export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系 function sum(a, b) { return a + b; } export.sum = sum; // 引用 const { sum }= require('...') // 暴露 function sum() {} module.exports = { sum } // 引用 import { sum } from '...' ``` * **Node**应用由模块组成,采用CommonJS模块规范 ## ES6模块规范 ### export 和 export default的关系 ``` // 暴露 export const a =1; // 引用 import { a } from '...' // 暴露 export default class worker {} // 引用 import worker from '...' ``` * 用export default,import语句不需要使用大括号;用export,对应的import语句需要使用大括号,一个模块只能有一个默认输出,所以export default只能使用一次 ## require/exports 和 import/export 形式不一样 ![](https://img.kancloud.cn/20/41/2041b8d7d3ecad57907ecabc08953b9b_669x498.png)