feng xiaohan

process

操作和控制当前进程的 api,并且挂载到 globalThis 下,是全局 API。

全局 API:不需要引入,直接调用。

ObjectDefineProperty(globalThis, "process", {
  __proto__: null,
  get() {
    return _process;
  },
  set(value) {
    _process = value;
  },
  enumerable: false,
  configurable: true,
});

api

platform

同 os。

arch

同 os。

argv

返回一个数组
0:运行工具地址
1:运行文件
2:运行命令后的参数

cwd

获取工作目录(同__dirname。)。

注意:在 esm 模式内不能使用__dirname,只能使用 cwd。

memoryUsage

返回内存信息

const res = {
  rss: 31006720, // 常驻集大小 物理内存的存量
  heapTotal: 6438912, // V8给我们分配的堆内存的总大小包括未使用的内存
  heapUsed: 5679584, //已经使用的内存
  external: 423221, //外部的内存++使用的
  arrayBuffers: 17606, //二进制的总最
};

exit

退出进程。可被监听。

process.exit();

process.on("exit", () => {});

kill

杀死进程。需要获取进程的 pid

setTimeout(() => {
  process.kill(process.pid);
}, 2000);

env

获取操作系统的所有环境变量。

在系统配置 -> 环境变量中可配。在当前进程中可修改,不影响操作系统全局

process.env.JAVA_HOME = "ssss";

应用

cross-env

用于设置环境变量的库。

原理:windows 调用SET 去设置环境变量;posix 使用 export 设置环境变量。