Subscribed unsubscribe Subscribe Subscribe

Islands in the byte stream

Technical notes by a software engineer

npm scripts 内では zshの**が使えないのでmochaの場合はそのまま渡すこと

npmのpackage.jsonに以下のように書いていたら、明らかに実行されるファイルが少なくてどうしたものかと思っていました。

"scripts": {
  "test": "mocha --opts spec/client/support/default.opts spec/client/**/*.spec.js"
}

理由は詳細には調べてませんが、おそらくこのスクリプトがzshではなくbashで実行されるためでしょう。

npm/npm#10481 によると、mochaは "**" をzsh的な意味で展開するのでそのまま渡せばいいということでした。

はたして以下のように書き換えるとちゃんと動きました。

"scripts": {
  "test": "mocha --opts spec/client/support/default.opts 'spec/client/**/*.spec.js'"
}