1.module.exports 是commonJS规范下的模块导出方法,可以:
// foo.js
module.exports.x = 1;
module.exports.y = 2;
// main.js
require('./foo') // { x: 1, y: 2 }
2.exports是module.exports在node环境下的简易方法(相当于定义const exports = module.exports)
3.export是ES6模块的方法,模块需要提供对外的接口,即在接口名与模块内部变量之间,建立了一一对应的关系:
// foo.js
export const x = 1;
// foo.js
var x = 1
export { x }
// foo.js
var y = 1
export { y as x }
以上三种都会暴露出一个名为x的接口,引入方法如下:
import { x } from './foo'
console.log(x) // 1
4.export default 是export导出默认模块的写法,此时可以对此模块默认导出的内容自定义命名,不需要{},等同于:
function func () {}
export { func as default } // 等同于export default func
import { default as foo } from './foo' // 等同于 import foo from './foo'