鍍金池/ 問答/HTML/ node child_process如何和原始命令交互

node child_process如何和原始命令交互

有這樣一種需求,例如:
使用vue init webpack my-project它會詢問你一些信息并做出反饋,我使用的child_process該怎么實現(xiàn)這樣的需求?

回答
編輯回答
萢萢糖

樓主的問題不是特別明確,你是想實現(xiàn):

  1. 人肉實現(xiàn) vue init webpack my-project 這樣的交互式問答的效果? 還是
  2. 通過 child_process 調(diào)用 vue init webpack my-project 命令

第一種

建議不要從頭開始,有很多現(xiàn)成的庫來幫你達到目的。比如 inquirer,使用也非常直觀,如何使用可以看下官方文檔。

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

當然,如果你還想進一步探究,可以參考筆者的 《Nodejs進階:readline實現(xiàn)日志分析+簡易命令行工具》。

其中,《例子:命令行工具:npmt init》 小節(jié)有介紹如何實現(xiàn)一個迷你的npm init。

第二種

參考如下代碼:

var child_process = require('child_process');
child_process.spawn('vue', ['init', 'webpack', 'my-project'], {
    stdio: 'inherit'
});
2017年11月20日 11:45