//process 进程
//Buffer 类型来处理二进制的
//clearInterval setTimeout
//clearImmediate setImmediate
//process 默认会在golbal中查找(node中有一个模块化系统,十一文件为单位的,每个文件都是一个模块,模块中的this被跟改了 this={})
//global.process === process
console.log(process)
//process.platform //可以判断当前执行的系统环境 win32 platform: 'darwin',
process.argv //是一个数组 第一个时node.exe存在的位置 第二个当前文件执行的位置 (解析用户自己传递的参数)
//执行node文件 node文件名 a b c d
//(commander TJ) (yargs webpack) npm github
// 在npm上的模块都要安装
const program = require('commander').program
program.version('1.0.0')
//command命令 action回调
.command('create').action(() => {
console.log('创建项目')
})
//当前命令的名称
.name('node')
//
.usage('my-server')
//传参
.option('-p,--port <v>','set you port')
//解析
.parse(process.argv)
//当用户在那执行node命令时 就去那个文件下找配置文件 webpack
process.cwd() //用户当前工作的目录 current working directory(这个目录可以改)
__dirname //当前文件所在的目录 不能手动切换
process.env //环境变量 可以根据环境变量实现不同的功能
// window 下 set key = value mac 下 export key = value 设置零时环境变量
//例如 let domain = process.env.NODE_ENV === 'production'? 'localhost':'www.bao.com'
//node中自己增加的微任务
process.nextTick
//也是微任务
queueMicrotask(() => {
})
内存使用
process.memoryUsage()
cpu 占用时间
process.cpuUsage()
运行环境:运行目录、node环境、cpu架构、用户环境、系统平台
process.cwd()
process.version
process.versions
process.arch
process.env.NODE_ENV
process.env.PATH
process.env.USERPROFILE // HOME
process.platform
3 运行状态: 启动参数、PID、运行时间
process.argv
process.argv0 // execArgv
process.pid // ppid
process.uptime()
4 事件
process.on('beforeExit',()=>{
})
process.on('exit',() => {
//只能执行同步代码
})
process.exit() //结束进程
5 标准输出 输入 错误
process.stdout.write('---')//输出
process.stdin.pipe(process.stdout) //输入 pipe 给 输出
process.stdin.setEncoding('utf-8')
process.stdin.on('readable',() => {
let chunk = process.stdin.read()
if(chunk != null) {
process.stdout.write('data' + chunk)
}
})