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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容