文章目录
一、CommonJS
1、什么是模块化
在node.js中,一个js文件(以
.js
结尾的文件)就是一个模块,node.js中默认的模块化规范就是CommonJS
模块分为两大类
核心模块
由node引擎提供的模块就是核心模块,核心模块的标识就是模块的名字
例如:fs
模块、path
模块、http
模块等
文件模块
由用户创建的模块就是文件模块,文件模块的标识就是文件的路径
2、怎么引入模块
通过require(模块标识)
函数引入模块(可以省略文件扩展名)
3、怎么向外暴露变量或者方法
在定义模块时,每一个js文件中的js代码都是独立运行在一个函数中的,所以模块中的内容默认是不能被外部看到的;
//模块中的代码都包装在该函数中
function (exports,require,_filename,_dirname){
……}
exports:
可以将希望暴露给外部模块的内容设置为exports的属性
- 使用方式
- exports.xxx = xxx的方式暴露
module.exports:
在引入其他模块时,require函数的返回永远指向module.exports对象,且一个模块只能有一个默认导出
exports等同于module.exports,但是二者使用的时候也有区别
- module代表的时当前模块本身,exports就是module的属性
- 使用方式
- 可以通过
module.exports.xxx = xxx
的方式暴露 - 也可以通过
module.exports = xxx
的方式暴露
- 可以通过
二、ESM
在node.js中如果需要使用ES的模块化,可以通过以下两种方式:
- 创建以
.mjs
结尾的文件 - 修改
package.json
中的模块化规范设置为ES模块化- 设置
"type"
的值为"module"
- 设置
1.怎么引入模块
使用
import
关键字导入(不可以省略文件扩展名(官方标准))
使用方式: