process
process
是 Nodejs 操作当前进程和控制当前进程的 API,并且是挂载到 globalThis 下面的全局 API
API 介绍
1. process.arch
返回操作系统 CPU 架构 跟我们之前讲的 os.arch 一样 'arm'
、'arm64'
、'ia32'
、'mips'
、'mipsel'
、'ppc'
、'ppc64'
、's390'
、's390x'
、以及 'x64'
2. process.cwd()
返回当前的工作目录 例如在 F:\project\node> 执行的脚本就返回这个目录 也可以和path
拼接代替__dirname
使用
3. process.argv
获取执行进程后面的参数 返回是一个数组 后面我们讲到命令行交互工具的时候会很有用,各种 cli 脚手架也是使用这种方式接受配置参数例如webpack
4. process.memoryUsage
用于获取当前进程的内存使用情况。该方法返回一个对象,其中包含了各种内存使用指标,如 rss(Resident Set Size,常驻集大小)、heapTotal(堆区总大小)、heapUsed(已用堆大小)和 external(外部内存使用量)等
{
rss: 30932992, // 常驻集大小 这是进程当前占用的物理内存量,不包括共享内存和页面缓存。它反映了进程实际占用的物理内存大小
heapTotal: 6438912, //堆区总大小 这是 V8 引擎为 JavaScript 对象分配的内存量。它包括了已用和未用的堆内存
heapUsed: 5678624, //已用堆大小
external: 423221, //外部内存使用量 这部分内存不是由 Node.js 进程直接分配的,而是由其他 C/C++ 对象或系统分配的
arrayBuffers: 17606 //是用于处理二进制数据的对象类型,它使用了 JavaScript 中的 ArrayBuffer 接口。这个属性显示了当前进程中 ArrayBuffers 的数量
}
5. process.exit()
调用 process.exit()
将强制进程尽快退出,即使仍有未完全完成的异步操作挂起
下面例子 5 不会被打印出来 因为在 2 秒钟的时候就被退出了。
6. process.kill
与 exit 类似,kill 用来杀死一个进程,接受一个参数进程 id 可以通过process.pid
获取
process.kill(process.pid);
7. process.env
用于读取操作系统所有的环境变量,也可以修改和查询环境变量。
修改 注意修改并不会真正影响操作系统的变量,而是只在当前线程生效,线程结束便释放。
环境变量场景
区分开发环境 和 生产环境
npm install cross-env
这个库是干什么的 cross-env 是 跨平台设置和使用环境变量 不论是在 Windows 系统还是 POSIX 系统。同时,它提供了一个设置环境变量的脚本,使得您可以在脚本中以 unix 方式设置环境变量,然后在 Windows 上也能兼容运行
其原理就是如果是 windows 就调用 set
如果是 posix 就调用 export
设置环境变量
set NODE_ENV=production #windows
export NODE_ENV=production #posix