文件結構:
- src - folder1 - app1.ts - folder2 - app2.ts
- tsconfig.json
tsconfig.json
{ "compilerOptions": { "target": "ES6", "module": "commonjs", "baseUrl": ".", "paths": { "@folder2/*": ["src/folder2*"] } } }
app1.ts
import xxx from '@folder2/app2';
class app1 {
......
}
app2.ts
class xxx { ...... } export default xxx;
編譯后,報錯:Error: Cannot find module '@folder2/app2'。
這段代碼在typeScript並沒有檢測到錯誤,但編譯為javascript后,路徑並沒有映射過去。javascript能訪問的路徑應該是../folder2/app2.ts。本身tsconfig.json提供paths這個屬性就是為了解決path hell(../../../../xxx.js)這樣原問題,但是編輯為javascript后卻依然未能解決這個問題。typescript官方至今仍未對這個缺陷作出過任何解釋。
解決這個問題,只能走其它方式:
項目中引入module-alias。
參考:https://www.npmjs.com/package/module-alias