module.exports、exports、export的区别

文章类型:node

发布者:admin

发布时间:2023-04-07

一:区别

主要是根据commonjs和esm来进行区分

1:commonjs可以使用module.exports / exports,采用require引入,采用{A :B }重名,不支持集体导出

2:esm可以使用export,采用import引入,采用as重命名, 支持全部导出,script标签设置type='module'

3:是exports 返回的是模块函数,module.exports 返回的是模块对象本身,返回的是一个类

二:分类

1:export

export function showAge() {
console.log(person.age);
}

export const PAI = '3.141592653'

import * as tool from "./moduleA.js";

2:exports=>是 module.exports 的引用和内存空间, 重新赋值则断开指向

exports.double = function (value) {
return value * 2;
}
var { double } = require('./moduleA');

3:module.exports=>默认值为{}

module.exports.double = function( value ){
return value * 2;
}

var { double } = require('./moduleA');

4:export default=> 默认导出,可以直接跟随:变量、具体值、function、calss

function calc(a, b) {
return a + b
}
export default calc

import * as tool from "./moduleA.js";