命令
一条命令基本包含三部分
- 命令
- 选项
- 参数
webpack --config ./config.js
上述命令中
webpack - 命令
--config - 选项
./config.js - 参数
process的介绍及其相关属性和方法
在node应用执行期间一直存在的一个对象,该对象包含了当前进程执行的相关信息,并且可以通过process对其进行控制。
process对象是EventEmmitter的实例
相关事件
-
'beforeExit' 该事件在事件循环清空的时候调用。
-
'exit' node进程因为以下情况退出的时候,会触发该事件。该事件的回调函数中只能指向同步代码。
- 显示的调用 process.exit()方法
- 事件循环被清空,且不再执行任何工作。
-
'warning' node进程发出的警告总会触发该事件
相关方法
-
process.exit()退出进程 -
process.abort()立即结束进程,并生成一个core文件 -
process.arch返回一个表示cup架构的字符串 -
process.argv返回一个数组,该数组的第一个元素是node.exe的绝对路径,第二个元素是运行的脚本文件绝对路径,后边的元素是传入的参数。在传入参数的时候,可以传入多个,用空格隔开。 -
process.argv0返回的是node.exe的绝对路径 -
process.cwd()获取当前node进程的工作目录,一般默认是命令行所在的目录。 -
process.chdir()接收一个路径,改变当前进程的工作目录。(一般模块引用相对目录的参照目录是当前模块所在的目录,而操作静态文件的相对目录是工作目录,__diranme永远指的是当前模块所在的目录) -
process.env返回一个当前系统环境变量的对象 -
process.execPath返回node.exe的绝对路径 -
process.exitCode如果通过exit方法退出进程的时候未指定退出码的话,那么该属性的值将作为退出码 -
process.memoryUsage()该方法返回内存使用情况 -
process.stdin返回连接至控制台输入的一个流,该流可以监听可读(readable)事件,当控制台输入完毕时触发。可通过process.stdin.read方法从流中读取数据,读取的数据格式为Buffer。也可以监听data事件,此时回调的参数就是读取的数据也是Buffer模式。 -
process.stdout返回一个链接至控制台的输出的一个流,process.studout.write()可以向控制台输出内容。
控制台登录
<<< @/docs/nodejs/process/src/login.js
child_process模块
child_process模块提供了可以衍生子进程的能力,分别提供了child_process.spawn和child_process.spawnSync方法,用来异步和同步的创建子进程,还有其他的衍生子进程的方法都是基于这两个方法的。
child_process.spawn
- command <string> 要运行的命令。
- args <string[]> 字符串参数的列表。
- options <Object>
- cwd <string> 子进程的当前工作目录。
- env <Object> 环境变量的键值对。默认值: process.env。
- argv0 <string> 显式地设置发送给子进程的 argv[0] 的值。如果没有指定,则将会被设置为 command 的值。
- stdio <Array> | <string> 子进程的 stdio 配置。
- detached <boolean> 父进程停止后,子进程是否独立运行,具体行为取决于平台。
- uid <number> 设置进程的用户标识
- gid <number> 设置进程的群组标识
- serialization <string> 指定用于在进程之间发送消息的序列化类型。可能的值为 'json' 和 'advanced'默认值: 'json'。
- shell <boolean> | <string> 如果为 true,则在 shell 中运行 command。 在 Unix 上使用 '/bin/sh',在 Windows 上使用 process.env.ComSpec。 可以将不同的 shell 指定为字符串。 参阅 shell 的要求与 Windows 默认的 shell。 默认值: false(没有 shell)。
- windowsVerbatimArguments <boolean> 在 Windows 上不为参数加上引号或转义。在 Unix 上忽略。如果指定了 shell 并且是 CMD,则自动设为 true。默认值: false。
- windowsHide <boolean> 隐藏子进程的控制台窗口(在 Windows 系统上通常会创建)。默认值: false。
- 返回: <ChildProcess>
该方法返回一个ChildProcess类型的对象,该对象上有 stdin stdout stderr这三个属性分别连接输入、输出、报错的流。
child_process.exec
- command <string> 要运行的命令,并带上以空格分隔的参数。
- options <Object>
- cwd <string> 子进程的当前工作目录。默认值: null。
- env <Object> 环境变量的键值对。默认值: process.env。
- encoding <string> 默认值: 'utf8'。
- shell <string> 用于执行命令的 shell。默认值: Unix 上是 '/bin/sh',- - - Windows 上是 process.env.ComSpec。
- timeout <number> 默认值: 0。
- maxBuffer <number> stdout 或 stderr 上允许的最大字节数。如果超过限制,则子进程会被终止并且截断任何输出。默认值: 1024 * 1024。
- killSignal <string> | <integer> 默认值: 'SIGTERM'。
- uid <number> 设置进程的用户标识
- gid <number> 设置进程的群组标识
- windowsHide <boolean> 隐藏子进程的控制台窗口(在 Windows 系统上通常会创建)。)。默认值: false。
- callback <Function> 当进程终止时调用并带上输出。
- error <Error>
- stdout <string> | <Buffer>
- stderr <string> | <Buffer>
- 返回: <ChildProcess>
衍生一个 shell 然后在该 shell 中执行 command,并缓冲任何产生的输出