子進程child,第1張

child_process介紹

使用

  1. 在package.json添加運行指令
{"scripts":{"start":"node start.js"}}
  1. 同package.json同級新建一個start.js文件
const{spawn}=require('child_process')constisWin32=process.platform==='win32'constchild=spawn(isWin32?'live-server.cmd':'live-server',{
  cwd:'./'})// stdout 獲取標準輸出
child.stdout.on('data',data=>{console.log(`stdout:${data}`)})// stderr 獲取標準錯誤輸出
child.stderr.on('data',data=>{
  console.error(`stderr:${data}`)})
child.on('close',code=>{
  console.log(`子進程退出,退出碼:${code}`)downLiveServer()})
child.on('error',code=>{
  console.log(`子進程錯誤,錯誤碼${code}`)// downLiveServer()})functiondownLiveServer(){// const child = spawn(isWin32 ? 'npm.cmd' : 'npm', ['install', '-D', 'live-server'])constchild=spawn(isWin32?'yarn.cmd':'yarn',['add','-D','live-server'])
  child.stdout.on('data',data=>{
    console.log(`live-server stdout: ${data}`)})
  child.stderr.on('data',data=>{
    console.log(`live-server stderr: ${data}`)})
  child.on('close',code=>{
    console.log(`live-server進程退出,退出碼:${code}`)})
  child.on('error',code=>{
    console.log(`live-server進程錯誤,錯誤碼${code}`)})}

遇到的問題

spawn中執行live-server命令時報錯 [Error: spawn ENOENT]” errors

原因:windows下live-server執行名不同

解決方案:

判斷是不是win32平台
const isWin32 = process.platform === 'win32’
不同平台使用不同命令,即 isWin32 ? 'live-server.cmd’ : 'live-server’


生活常識_百科知識_各類知識大全»子進程child

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情