node child_process如何和原始命令交互

有这样一种需求,例如:
使用vue init webpack my-project它会询问你一些信息并做出反馈,我使用的child_process该怎么实现这样的需求?

阅读 4k
1 个回答

楼主的问题不是特别明确,你是想实现:

  1. 人肉实现 vue init webpack my-project 这样的交互式问答的效果? 还是
  2. 通过 child_process 调用 vue init webpack my-project 命令

第一种

建议不要从头开始,有很多现成的库来帮你达到目的。比如 inquirer,使用也非常直观,如何使用可以看下官方文档。

var inquirer = require('inquirer');
inquirer.prompt([/* Pass your questions in here */]).then(answers => {
    // Use user feedback for... whatever!!
});

当然,如果你还想进一步探究,可以参考笔者的 《Nodejs进阶:readline实现日志分析+简易命令行工具》

其中,《例子:命令行工具:npmt init》 小节有介绍如何实现一个迷你的npm init。

第二种

参考如下代码:

var child_process = require('child_process');
child_process.spawn('vue', ['init', 'webpack', 'my-project'], {
    stdio: 'inherit'
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题