欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在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();