我正在Windows 7机器上运行Node6.9.5和NPM3.10.10。我的终点站是Cygwin 2.877。
如果我试图在Cygwin中运行以下代码,它会运行得很好:
mkdir mydir/mysubdir;
但是,如果我将它放入一个package.json
文件中,例如:
"scripts": {
"test": "mkdir mydir/mysubdir"
},
然后跑:
npm run test
它失败了,因为:
The syntax of the command is incorrect.
在搜索完上面的内容后,它似乎是Windows命令提示错误,而不是Cygwin错误。因此,NPM似乎试图使用命令提示符来运行脚本,而不是使用现有的Cygwin环境。
我怎么才能解决这个问题?或者更确切地说,如何确保NPM在正在调用它的终端环境中运行脚本?
发布于 2017-02-08 08:33:37
脚本总是在默认的windows shell中运行,而不是cygwin。
如果您希望它在bash中运行,那么将其放在package.json
中。
"scripts": {
"test": "bash test.sh"
},
把这个放进test.sh
里
#!/bin/bash
mkdir mydir/mysubdir
或者,正如csvan在注释中指出的那样,您可以使用Node脚本而不是shell脚本:
"scripts": {
"test": "node test.js"
},
对于跨平台兼容性而言,这种方法甚至更好。
另请参阅:
https://stackoverflow.com/questions/42107780
复制相似问题