2017-04-26 25 views
2

私はConEmuを介して魚のシェルを実行しているWindows上です。デフォルトでは、魚は「& &」演算子これを持っしかし認識しません:npmスクリプトの実行時に使用するシェルのnpmはどれですか?

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

と実行している「NPMの実行テスト」に取り組んでいます。 だから、私は、「テスト」のスクリプトを変更すると ....しかし、私はそれがデフォルトの「CMD」を使用する必要があります考えて、これはnpm config ls -l | grep shellが言うことである:

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

lsが明確にサポートされていない間、これも動作します"cmd"で

ここで何が起こっていますか?

答えて

0

私はあなたのケースでどのシェルが使われているのか分かりませんし、どのシェルがnpmであるのかを調べるのに好ましい方法はありませんが、いくつかの一般的なヒントがあります。

あなたは試すことができますのような結果を生むことができ

{ 
    "scripts": { 
    "test": "echo $0" 
    } 
} 

$ npm run test 

> @ test /home/matmat/test 
> echo $0 

sh 

(Linuxのbashのための)

または

のWindowsのNode.js上
C:\Users\qbolec\Documents\test>npm run test 

> @ test C:\Users\qbolec\Documents\test 
> echo $0 

$0 

コマンド・プロンプト。

また

"test": "which ls" 

は、いくつかの詳細情報を取得しようとすることができます。

0

ルックスラインnpm runは、デフォルトのBourne互換シェルを指すshシェルにコマンドを送信します。あなたのエミュレータに関する経験はありませんが、あなたの環境ではbashを使用しているはずです(FishはBourneと互換性がないためです)。

関連する問題