Diffenrences between require/exports & import/export
遵循的模块化规范不同
require/exports是commonjs规范;import/export是ES6规范
形式不同
require/exports的用法只有以下三种
1 | const fs = require('fs') |
import/export的写法多种多样
1 | import fs from 'fs' |
本质差别
- CommonJs & ES6 Module 输出都可以看成是一个具备多个属性或者方法的对象。
- default是ES6 Module独有的关键字,export default fs输出默认的接口对象,import fs from ‘fs’可以直接导入这个对象。
- ES6 Module中导入的属性或者方法是强绑定的,包括基础类型;而CommonJS是普通的值传递或者引用传递。
require | import |
---|---|
动态评估 | 静态评估 |
运行时报错 | 解析时报错 |
非关键词 | 关键词 |
1 | // dep.js |
输出为2.而commonjs为1。
module.exports和exports区别
首先,导出的永远为module.exports对象。而exports对象仅为module.exports的引用。