【TypeScript】エラー対応→Error TS1149: File name ‘Filename.ts’ differs from already included file name ‘FileName.ts’ only in casing.


TypeScriptとか使って、 npm run すると以下のエラーが出てくるときがある。

直訳すると

ファイル名「/resources/model/category/SubcategoryId.ts」は、既に含まれているファイル名「/resources/model/category/SubCategoryId.ts」と大文字と小文字のみが異なります。

となっているので、ああ・・subcategoryのcが大文字と小文字で違うのかー。

どこか、importする時にcを大文字で入力忘れた箇所あったのかなーと、最初は考えました。

要するに、tsconfig.jsonファイルで、” forceConsistentCasingInFileNames": true  と指定しているので、ファイルの大文字小文字の違いエラーだと思ったわけです。

ただ、全てのimport箇所を確認してもSubcategoryと間違って書いているところはない・・。

しかも、普通なら、間違って名前指定している箇所の行数がエラーにでてくるはずなのに、出てこない。。

もしや、と思いつつ、dockerコンテナの中に入ってみると・・・

Subcategoryと、SubCategory2つのファイルがある・・・。

もちろん、ホスト側にはファイルは一つしかありません。

docker-sync使用時のファイルorディレクトリリネームにご注意!

どうやら、ファイル名をSubcategory→SubCategoryに変更した際、前のファイルもそのまま残ってしまっていた模様・・。

おそらくdocker-syncを使っている時だけこういう自体が起こる気がします。

docker-sync使用している時は、ファイル名変更に注意するしかない!

最後に・・・このままdockerコンテナ上で、Subcategoryを削除したり、Subcategory→SubCategoryにmvしたりすると、ホスト側のファイルが消えてしまったので、削除の前にホスト側のファイル退避はしておいたほうが良いです。

 

 

 

この記事がお役に立てたら、是非シェアをお願いします^^