在Node.js中实现JavaScript操作Shell命令的多种方法:child_process模块详解
最编程
2024-02-18 17:40:22
...
介绍
child_process是node提供的一个子进程AP,具体可见官网、中文网关于此类api的介绍,对衍生shell及参数有非常详细的说明,下面列出两个常用的api
1. child_process.exec(command[, options][, callback])
command:要运行的shell命令
创建一个新的shell进程,然后执行command
2. child_process.execFile(file[, args][, options][, callback])
file:要运行的文件名称或路径,参数作为数组传入
直接将可执行的file创建为新进程;需要单独写.sh文件,可编写复杂逻辑,但在windows上使用时会有兼容问题(此外,还有child_process.spawn()等可供选择)
示例
const util = require('util');
const child_process = require(‘child_process');
// 调用util.promisify方法,返回一个promise,如const { stdout, stderr } = await exec('rm -rf build')
const exec = util.promisify(child_process.exec);
const appPath = join(__dirname, 'app');
const runClean = async function () {
// cwd指定子进程的当前工作目录 这里的rm -rf build为删除指定目录下的一个文件夹
await exec(`rm -rf build`, { cwd: appPath });
await exec(`rm -rf test`, { cwd: appPath });
runClean();