process
来源:Node.js
process是操作和控制当前进程的API,还是挂载到globalThis的全局API
process.arch
process.arch()
返回操作系统CPU架构,和os.arch()
一样
process.cwd
process.cwd()
返回当前工作目录,在哪里执行脚本就返回哪个目录
ESM模式下无法使用__dirname
,可以将process.cwd()
和path拼接代替使用
process.argv
process.argv
返回一个数组,可以获取执行进程后面的参数,各种cli脚手架也使用这种方式接受配置参数
process.memoryUsage
process.memoryUsage()
返回一个对象,可以获取当前进程的内存使用情况,其中包含了各种内存使用指标
1 | { |
rss
:全称Resident Set Size,常驻集大小,物理内存的存量heapTotal
:V8分配的堆内存总大小,包括未使用的内存heapUsed
:已使用的堆大小external
:外部内存使用量,例如C或C++arrayBuffers
:二进制的总量
process.exit
process.exit()
能使进程尽快退出,即使仍有未完全完成的异步操作挂起
process.kill
process.kill()
可以杀死一个进程,接收一个参数为进程id
可以使用process.pid
获取自己的进程
1 | // 所以这就相当于process.exit() |
process.env
process.env
读取操作系统中所有的环境变量,也可以修改
在这里修改并不会真正影响操作系统的环境变量,而只是在当前线程生效,线程结束便释放
案例
先安装个依赖:
1 | npm install cross-env |
cross-env可以跨平台设置和使用环境变量,不论是在Windows系统还是posix系统
cross-env设置环境变量底层:如果是Windows就调用set;如果是posix就调用export
1
2 set NODE_ENV=production #windows
export NODE_ENV=production #posix
它提供了一个设置环境变量的脚本,能在脚本中以Unix方式设置环境变量,在Windows上也能兼容运行
使用方法:
1 | cross-env NODE_ENV=[自定义值] |
有时项目需要区分开发环境和生产环境,就可以这样配置scripts:
1 | "scripts": { |
在代码中就能使用process.env判断环境了
评论