nodejs中如何执行终端命令?

请问如何在node脚本中执行例如vue create xxx的命令?

我想做一个活动的脚手架,想借鉴vue-cli的思想,提供一些选项给开发者,然后根据开发者的选择自动生成项目模板。例如,开发者选择使用vue,那么就调用vue-cli的命令生成模板(这中间还会做一些和业务相关的事情),但是在脚本中用execa执行vue create xxx之后,并不会正常调用,而是终端没有反应了。但是执行像git init的命令。

接收到参数之后调用Creator函数
clipboard.png

结果就是光标一直在闪,并没有正常执行vue create xxx
clipboard.png

阅读 16.3k
4 个回答

可以用shelljs模块

npm install shelljs
require('shelljs/global');

// Sync call to exec()
var version = exec('node --version', {silent:true}).output;

// Async call to exec()
exec('vue create xxx', function(status, output) {
  console.log('Exit status:', status);
  console.log('Program output:', output);
});

两种方式:

1. 使用子进程 child_process 创建,包括相关的封装包,比如 shelljs,你代码中的 execa 也是一个封装。

正确使用 execa 应该是这样:

execa.shell(command, [options])

2. 在代码中直接调用

require('@vue/cli/bin/vue');

我对 vue-cli 不怎么了解,更详细的需要你自己去了解,比如能不能添加回调函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题