const { execSync } = require('child_process');
execSync('./node_modules/.bin/babel plugins/router-generator/src --out-dir plugins/router-generator/dist')
node执行该代码,在Mac执行没问题,但在win10执行,则报错:
'.' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
child_process.js:656
throw err;
^
解决方案:
- 将斜杆变成反斜杆,即:
execSync('.\\node_modules\\.bin\\babel plugins/router-generator/src --out-dir plugins/router-generator/dist')
这样 cmd 就能找到路径了,但是得判断系统是否为 win32
if(process.platform === 'win32'){
...
}
- 全局安装 cross-env
npm i cross-env -g
然后加上 cross-env
execSync('cross-env ./node_modules/.bin/babel plugins/router-generator/src --out-dir plugins/router-generator/dist')
这个就是需要全局安装 cross-env
如有更好的方案,欢迎留言交流