如何在tsconfig中添加子目录模块别名?

时间:2019-04-29 10:36:56

标签: node.js typescript tsconfig typescript3.0 module-alias

我可以毫无问题地设置模块别名:

"baseUrl": "./app",
 "paths": {
   "assets/*": ["assets/*"],
   "components/*": ["components/*"],
   ...
 },           

这有效。但是,我(实际上是我的客户,我想将来将项目的某些部分提取为模块)想要创建子目录作为不同路径的别名(假设所有目录都作为值存在,,并且我不能更改实际的目录结构):

"paths": {
   "assets/*": ["assets/*"],
   "components/*": ["components/*"],
   "@myapp/api/*": ["services/myapp/*"],
   "@myapp/state/*": ["state/*"],
 },       

抛开这是否是一个好的模式/实践(正如我这样要求),在不涉及物理目录结构(并且不使用第三方依赖)的情况下,这在技术上是否可行? (我正在使用Typescript 3.4.3和Vscode 1.33.1)

1 个答案:

答案 0 :(得分:0)

"baseUrl": "./",
"paths": {
  "@myapp/environment": [ "./src/environments/environment" ],
  "@myapp/extensions": [ "./src/extensions" ],
  "@myapp/testing": [ "./src/testing" ],
  "@myapp/constants": [ "./src/app/shared/constants" ],
  "@myapp/data": [ "./src/app/data" ],
  "@myapp/shared": [ "./src/app/shared" ],
  "@myapp/core/*": [ "./src/app/core/*" ],
  "@myapp/*": [ "./src/app/*" ]
}

这就像我项目中的魅力