使用node的child_process的spawn方法調用cmd,報錯'.' 不是內部或外部命令

做一個小工具時,用到了node的child_process,因爲要和子進程保持通信,所以我選用了spawn方法。寫法如下:

const { spawn } = require('child_process');
spawn('./node_modules/.bin/my-webpack-dev-server.cmd', [],{cwd:'./projects/01'})

結果程序華麗麗地報錯了:

'.' 不是內部或外部命令

明明直接在windows的命令行工具裏,這行代碼是可以運行的啊,爲什麼到了node裏報錯了呢。
經過嘗試,發現換這種寫法就可以了:

const { spawn } = require('child_process');
spawn('.\\node_modules\\.bin\\my-webpack-dev-server.cmd', [],{cwd:'./projects/01'})

看來關於文件路徑,node裏執行時還是比較嚴格的,不像cmd裏會幫助我們做很多轉義的操作,所以寫法上要更加嚴謹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章