Node.js の import の大文字小文字問題について

備忘録。

Nuxt.js を使っている時にファイルシステムの仕様で MacLinux でビルドの成否が変わる問題に当たった。

components/atoms/AppButton.vueimport するための以下のコードがローカル(on Mac)だとビルドできるが、CI(on Linux)だとビルドできなかった。

import '@/components/atoms/Appbutton'

Linux でエラーになった原因は AppButtonAppbuttontypo していたからだが、これが何故 Mac ではエラーにならなかったかというと Macファイルシステムcase insensitive だからだった。

eslint-plugin-import を入れるのを忘れてたのがよくなかった。これと一緒に Nuxt.js のパスを解釈するために eslint-import-resolver-nuxt-import を入れて防ぐようにした。