child_process spawn 进入具体目录中 执行命令

在 Node.js 中,如果你想要使用 child_process.spawn 方法在一个特定的目录中执行命令,可以使用 spawn 方法的 cwd(current working directory)选项。这个选项允许指定子进程应该在其上运行命令的目录。

以下是一个例子,展示了如何使用 spawn 在一个指定的目录中执行 yarn build 命令:

const { spawn } = require('child_process');  
const path = require('path');  
  
// 假设你已经有了要进入的目录路径  
const projectDir = '/path/to/your/project'; // 替换为实际的项目目录  
const domain = 'your-domain'; // 替换为实际的 domain 值  
  
// 构建命令和参数  
const cmd = 'yarn';  
const args = ['build:' + domain]; // 添加其他参数如果需要  
  
// 使用 spawn 执行命令,并指定 cwd 为项目目录  
const child = spawn(cmd, args, {  
  cwd: projectDir // 设置工作目录为项目目录  
});  
  
// 监听 stdout 和 stderr 的数据事件  
child.stdout.on('data', (data) => {  
  console.log(`stdout: ${data}`);  
});  
  
child.stderr.on('data', (data) => {  
  console.error(`stderr: ${data}`);  
});  
  
// 监听 close 事件以获取退出码  
child.on('close', (code) => {  
  console.log(`子进程退出,退出码 ${code}`);  
});  
  
// 如果你想要捕获错误事件(例如,如果无法执行命令)  
child.on('error', (error) => {  
  console.error(`执行命令时发生错误: ${error}`);  
});
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值