問題
透過 CentOS 8 來 compile ts 檔時,居然噴error TS2307 Cannot find module
的錯誤
error TS2307: Cannot find module ‘./../adapters/WebChatAdapter’ or its corresponding type declarations.
8 import { WebChatAdapter } from ‘./../adapters/WebChatAdapter’;
解法
可是,原本在 Mac/Windows 中怎麼沒有錯誤呢?
TypeScript 的 import 在 Mac/Windows 是不分大小寫的,但在 CentOS 是有區分的。
而會發生那個錯誤是因為,程式碼中寫的是 from 檔名是大寫開頭的 WebChatAdapter ,
但實際檔名卻是小寫開頭的 webChatAdapter。
所以將 from 的檔名改成小寫就可以了。from './../adapters/WebChatAdapter'
=> from './../adapters/webChatAdapter'
而為了怕未來有類似的狀況,就在 tsconfig.json 中加入 forceConsistentCasingInFileNames
的設定(預設是 false)。
1 | { |
這樣在 Mac/Windows 有 import 跟 檔名大小寫不同時,也一樣會噴錯誤,就可以在開發時第一時間發現問題。