Node.js 运行npm脚本时使用哪个shell npm?
我站在窗户上,用鱼壳穿过ConEmu。默认情况下,Fish不识别“&&”运算符,但具有以下特性:Node.js 运行npm脚本时使用哪个shell npm?,node.js,bash,shell,npm,fish,Node.js,Bash,Shell,Npm,Fish,我站在窗户上,用鱼壳穿过ConEmu。默认情况下,Fish不识别“&&”运算符,但具有以下特性: "scripts": { "test": "echo 'a' && echo 'b'" } 运行“npm运行测试”正在运行。 所以我认为它必须使用默认的“cmd”,而这正是npmconfigls-l | grepshell所说的。。。。 当我将“测试”脚本更改为: "scripts": { "test": "echo 'a' && ls" } 当“cmd”
"scripts": {
"test": "echo 'a' && echo 'b'"
}
运行“npm运行测试”正在运行。
所以我认为它必须使用默认的“cmd”,而这正是npmconfigls-l | grepshell
所说的。。。。
当我将“测试”脚本更改为:
"scripts": {
"test": "echo 'a' && ls"
}
当“cmd”中显然不支持ls
时,这种方法也能起作用
这到底是怎么回事 我不知道在您的案例中使用了什么shell,也不知道检查npm使用哪个shell的首选方法是什么,但我有一些一般性的提示,可能会有所帮助 你可以试试
{
"scripts": {
"test": "echo $0"
}
}
这会产生如下结果:
$ npm run test
> @ test /home/matmat/test
> echo $0
sh
(适用于linux上的bash)
或
在Windows Node.js命令提示符下
你也可以试试
"test": "which ls"
获取更多信息。查找行
npm run
将命令发送到sh
shell,该shell通常指向默认的Bourne兼容shell。我没有使用您的模拟器的经验,但我敢打赌它在您的环境中使用的是bash
(因为Fish与伯恩不兼容)
"test": "which ls"