2017-04-26 140 views
2

我在通過ConEmu運行魚殼的Windows上。魚在默認情況下不承認「& &」運營商有這個然而運行npm腳本時,哪個shell npm正在使用?

"scripts": { 
    "test": "echo 'a' && echo 'b'" 
} 

並運行「故宮運行測試」工作。 所以,我想這一定是使用默認的「CMD」,這是什麼但是說npm config ls -l | grep shell,... 當我改變「測試」腳本:

"scripts": { 
    "test": "echo 'a' && ls" 
} 

這也適用,而顯然不支持ls在「cmd」中。

這到底是怎麼回事?

回答

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" 

得到一些更多的信息。

0

顯示行npm run將命令發送到sh外殼,該外殼通常指向默認的Bourne兼容外殼。我沒有使用模擬器的經驗,但我敢打賭它在你的環境中使用bash(因爲Fish不是Bourne兼容的)。