要するに
ターミナルで蒸気機関車を走らせることができるジョークコマンド(Steam Locomotive
)と、sapling
のコマンド名がコンフリクトしている(どっちもsl
な)ので、Steam Locomotive
をインストールしていると jest --watch
が正常に起動しません。
BugFixについてはv30から入るようです。
Steam Locomotiveって
ls
をsl
とタイポしたときに、ターミナルに蒸気機関車が走るというジョークコマンドです。
https://github.com/mtoyoda/sl より引用。
ジョークコマンドの一つとして、QiitaやZennなどでも取り上げられるのを見ますね。
何が起きたのか
Steam Locomotive
を入れた環境で jest --watch
テストを流すと動きません!
npx jest --watch
Determining test suites to run...
● Test suite failed to run
thrown: [Error]
詳しい理由
冒頭の通り、slというコマンド名が Steam Locomotive
とsapling(Meta謹製のソースコード管理システム)のコマンド名が重複しています。
もう少し具体的には jest-changed-files
が gitやsaplingなどいくつかのソースコード管理システムによる差分検知をサポートしており、slコマンドも入っていれば利用してくれます。
ここで名前がコンフリクトしているのでSteam Locomotive
を利用している人は蒸気機関車が走ってしまい、エラーになるというわけです。
Bugfixについて
こちらのPRで修正されています。sl
が Steam Locomotive
なら処理をスキップするようになっています。