process的基本使用
基本介绍
processs是操作当前进程和控制当前进程的API, 是挂载到gobalThisNode全局的API
基本是使用
1.process.arch
-
process.arch是获取操作系统 CPU 架构跟我们之前讲的OS.arch一样process.arch // x64- 它返回的可能值有:
'arm'、'arm64'、'ia32'、'mips'、'mipsel'、'ppc'`、'ppc64'、's390'、's390x'、'x64'
- 它返回的可能值有:
2.process.cwd()
-
process.cwd()返回当前项目的根目录 -
与CJS中的
__dirname不同的是:-
__dirname返回的是当前执行文件的位置 -
例如:当前路径 D://node/process/utils/index.js
__dirname // D://node/process/utils process.cwd() // D://node/process
-
3.process.argv
-
process.argv获取到执行进程的后面的参数 返回的是一个数组,其实这个命令一般用于各种工具库- 例如:
webpackviteroullupgulp等构建工具
- 例如:
-
一般我们写一些插件也可以使用到该属性
-
数组里面第一个返回的是你
node.exe执行文件 -
数组里面第二个返回的就是你 当前执行文件的位置的绝对路径
-
数组第三个参数甚至后面更多的参数 都是用户自定义的


4.process.memoryUsage()
-
process.memoryUsage是获取当前进程内存的使用情况,该方法返回的是一个对象 -
rss(Resident Set Size,常驻大小),heapTotal(堆区总大小) -
heapUsed(已用堆大小)external(外部内存使用量) -
arrayBuffers是处理二进制数据的,跟踪由 Node.js Buffer 和 TypedArray(如Uint8Array、Float32Array等)等数组缓冲区对象占用的内存量。- 这些对象通常用于处理二进制数据,如文件操作、网络通信(如 WebSocket 消息)、图像处理等场景。
-

5.process.exit()
-
process.exit()这个方法是退出当前进程的 -
例如:我设置了一个定时器 2秒后执行 当我使用该方法他将退出当前进程
setTimeout(() => { console.log('吃饭了!!!'); // 此时不会执行 }, 2000); process.exit(); // 退出了进程 // 退出进程之后的事件 process.on('exit',()=>{ console.log('进程结束了') // 进程结束了 })
6.process.kill()
-
process.kill杀掉某个进程这个方法与process.exit类似,但是不同的是process.kill接受一个进程id进行退出 -
例如:
setTimeout(()=>{ console.log('执行开始了') process.kill(process.pid) console.log('执行结束') },1000) setTimeout(()=>{ console.log('执行开始了1111') },1500) // 最终结果 当杀掉进程之后后面的代码都不会执行
7.process.env
-
process.env用于读取操作系统所有的环境变量,也可以修改和查询环境变量。 -
注意: 修改的环境变量只在当前线程有效,不会影响到全局,线程结束和释放
process.env.HOME = 'YES'
环境变量场景
当我们在开发过程中比如接口、代码、样式 需要做环境的区分,其实也就用到node中process.env
推荐使用 cross-env
npm install cross-env
在package.json的scripts中自定义 cross-env node执行命令 多个环境变量使用corss-env 隔开
{
"name": "06-node-process",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev":"cross-env NODE_ENV=dev cross-env NODE_PATH='/' node ./utils/main.js",
"pro":"cross-env NODE_ENV=pro cross-env NODE_PATH='/home' node ./utils/main.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"cross-env": "^7.0.3"
}
}
npm run dev

底层其实就是:
set NODE_ENV=dev #windows
export NODE_ENV=dev #posix
注意:里面设置的环境变量都是临时的,当前线程关闭,环境变量也会被释放
windows 持久化
setx NODE_ENV production /M
posix持久化
要使环境变量设置持久化,你需要将其添加到 shell 的配置文件中。这取决于你使用的 shell 和你想要设置的范围(仅对当前用户还是对所有用户)。
对于 bash 用户
- 仅对当前用户:编辑
~/.bashrc或~/.bash_profile(取决于你的系统配置和个人喜好)。 - 对所有用户:编辑
/etc/profile或/etc/environment(但请注意,直接编辑这些全局文件可能需要管理员权限,并且可能会影响系统上所有用户的环境)。
export NODE_ENV= dev #posix