我已在此页面阅读了ModuleResulution
关于打字稿的说明:https://www.typescriptlang.org/docs/handbook/module-resolution.html#node
据我所知,我要导入的所有文件必须位于node_modules
目录中。有没有办法导入不在此目录中的文件?
假设我有以下目录结构(src/MyApp/
):
├── Console
│ └── Console.ts
├── Interfaces
│ └── CredentialsInterface.ts
└── Service
├── Authentication.ts
├── Router.ts
└── Connector.ts
然后例如在我的src/pages/login/login.ts
中,我使用它来导入Console.ts
:
import { Console } from '../../MyApp/Console/Console';
但我希望实现这样的目标:
import { Console } from '@MyApp/Console/Console';
@MyApp
是src/MyApp
的别名。
由于潜在的文件/文件夹重定位或稍后重构我可能想要替换我的文件的位置,但我不想手动浏览所有文件以更改“硬编码”路径,如果这是有意义的,我知道这可以用于其他工具,例如Composer。
这有可能吗?提前谢谢!
答案 0 :(得分:1)
要做到这一点,你必须更新几个文件,你可以通过更新tsconfig.json
并扩展webpack配置文件来实现。
在tsconfig.json
上,您需要添加compilerOptions
:
"baseUrl": "./src",
"paths": {
"app/*": [
"app/*"
],
"@env": [
"environments/environment"
],
"interfaces/*": [
"interfaces/*"
],
"providers/*": [
"providers/*"
],
"validators/*": [
"validators/*"
]
}
我留下了一个简短文档的链接,我做了这个文档实现了这一点,并使用了angular-cli
的环境