亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 npm 安裝進度條通過管道傳輸到終端?

如何將 npm 安裝進度條通過管道傳輸到終端?

Go
侃侃爾雅 2023-03-15 14:48:21
我試過使用stdoutpipe 和 stderrpipe,如下所示。shell := exec.Command("npm", args...)shell.Dir = cwdoutpipe, _ := shell.StdoutPipe()errpipe, _ := shell.StderrPipe()shell.Start()go func(pipe io.ReadCloser) {    reader := bufio.NewReader(pipe)    line, err := reader.ReadString('\n')    for err == nil {        fmt.Println(string(line))        line, err = reader.ReadString('\n')    }    fmt.Println("exited")}(outpipe)go func(pipe io.ReadCloser) {    reader := bufio.NewReader(pipe)    line, err := reader.ReadString('\n')    for err == nil {        fmt.Println(string(line))        line, err = reader.ReadString('\n')    }    fmt.Println("exited")}(errpipe)err := shell.Wait()if err != nil {    fmt.Println(err)}但是我只得到輸出:added 87 packages, and audited 88 packages in 3s9 packages are looking for fundingrun `npm fund` for detailsfound 0 vulnerabilities如何獲取從控制臺運行 npm install 時獲得的安裝進度條?我也嘗試過使用下面的解決方案并在運行 shell.run() 后打印緩沖區,但它也提供與上面相同的輸出。shell := exec.Command(command, args...)shell.Dir = cwdvar stderr, stdout bytes.Buffershell.Stderr = &stderrshell.Stdout = &stdoutreturn shell, &stdout, &stderr
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

cmd := exec.Command("npm", args...)

cmd.Dir = cwd


cmd.Stdout = os.Stdout

cmd.Stderr = os.Stderr

重定向到os 的 stdout 和 stderr就是訣竅。


查看完整回答
反對 回復 2023-03-15
  • 1 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號