文件目录:
package.json(npm初始化生成的文件)
{
"name": "customizepackage",
"version": "1.0.0",
"description": "自定义包",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "zlm",
"license": "ISC"
}
index.js
const {add,sub,mul,div}=require('./calc.js');
module.exports={
add:add,
sub:sub,
mul:mul,
div:div
}
calc.js
function add(n1,n2){
return n1+n2;
}
function sub(n1,n2){
return n1-n2;
}
function mul(n1,n2){
return n1*n2;
}
function div(n1,n2){
return n1/n2;
}
module.exports={
add:add,
sub:sub,
mul:mul,
div:div
}
模块暴露(exports).js
// 第一种导出方式
exports.c = '我是暴露出来的属性';
exports.f1=()=>{
console.log('我是暴露出来的方法');
}
// 第二种导出方式
function add(n1,n2){
return n1+n2;
}
module.exports={
add:add
}
模块引用(require).js
// 第一种导入方式
const g1=require('./模块暴露(exports).js');
console.log(g1.c);
g1.f1();
// 第二种导入方式(解析赋值)
const {add}=require('./模块暴露(exports).js');
console.log(add(1,5));
// 第三种导入方式(导入自定义包)
const customizePackage=require('../customizePackage');
console.log(customizePackage.add(10,13));
console.log(customizePackage.sub(20,7));
console.log(customizePackage.mul(3,3));
console.log(customizePackage.div(100,4));
模块引入.js中的三种导入方式有冲突,所以一个一个来执行,第一种导入导出方式:
第二种导入导出方式:
第三种自定义包导入导出方式: