jenkins で jest を通そうとしたら、下記のようなエラーが発生。
● Test suite failed to run
Configuration error:
Could not locate module Core/api/server/BaseApi (mapped as /home/jenkins/workspace/bsr4b/BsrLib/src/js/core//api/server/BaseApi)
"resolver": undefined
webpack のビルドも通らない。
原因
jest, webpack, babel の問題かと色々調べたのですが、原因はとても初歩的でファイル名の大文字小文字違いでした。
Unix のような Mac OS X で 動作するのになぜ?
Mac は大文字、小文字をちゃんと区別してくれる OS だと思い込んでいたのでめっちゃくちゃハマりました。
Mac OSX の 拡張の大文字/小文字区別はEl Capitanだと使えない(Sierraも同様)
いつもまにか大文字小文字を区別しない OS になってました。
この勘違いがものすごい苦戦の原因になりました。
対策
何かしら対策のできるライブラリがないか検討したところ、下記のプラグインを webpack に追加することにしました。
case-sensitive-paths-webpack-plugin
大文字小文字がおかしいと 下記のようなエラーをはいてくれました。
ERROR in ./src/js/basic/Viewer.js
Module not found: Error: [CaseSensitivePathsPlugin] `/Users/kaoki/webapp/BSR4B_hybrid/src/js/basic/api/BasicAPI.js` does not match the corresponding path on disk `BasicApi.js`.
大文字小文字を区別って 英語で CaseSensitive Paths っていうのだと学びました。