我在Windows上通过ConEmu运行鱼壳。鱼默认情况下不识别"&&"运营商然而有这个:
"scripts": {
"test": "echo 'a' && echo 'b'"
}
并运行" npm run test"工作中。
所以我认为必须使用默认" cmd"这就是npm config ls -l | grep shell
所说的,但......
当我改变"测试"脚本:
"scripts": {
"test": "echo 'a' && ls"
}
这也有效,而{< {1}}显然不支持" cmd"。
这到底是怎么回事?
答案 0 :(得分:0)
我不知道在你的情况下使用了什么shell,也没有什么是检查哪个shell是npm使用的首选方法,但我有一些一般的提示,这可能会有所帮助。
你可以尝试
{
"scripts": {
"test": "echo $0"
}
}
可以产生如下结果:
$ npm run test
> @ test /home/matmat/test
> echo $0
sh
(对于linux上的bash)
或
C:\Users\qbolec\Documents\test>npm run test
> @ test C:\Users\qbolec\Documents\test
> echo $0
$0
在Windows Node.js命令提示符下。
您也可以尝试
"test": "which ls"
获取更多信息。
答案 1 :(得分:0)
看起来行npm run
将命令发送到sh
shell,它通常指向默认的Bourne兼容shell。我没有你的模拟器的经验,但我敢打赌它在你的环境中使用bash
(因为Fish不兼容Bourne)。