使用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里会帮助我们做很多转义的操作,所以写法上要更加严谨。

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