文件结构:
- 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