Angular 角度tsconfig.ts路径绝对导入不';t解析模块
当Angular中的绝对导入无法按预期工作时,我遇到了一个问题。使用以下设置Angular 角度tsconfig.ts路径绝对导入不';t解析模块,angular,typescript,Angular,Typescript,当Angular中的绝对导入无法按预期工作时,我遇到了一个问题。使用以下设置 // tsconfig.json { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "moduleResolution": "node", ... "paths": { "@models/*": [ "src
// tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"moduleResolution": "node",
...
"paths": {
"@models/*": [
"src/app/models/*"
]
}
}
}
// tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts",
"**/*.e2e.ts"
]
}
目录结构如下:
/src/app/models
/index.ts
/my-model.ts
// index.ts
export * from './my-model';
"@models/*": [
"src/app/models/*",
"src/app/models/"
]
"paths": {
"@models": [
"src/app/models"
],
"@models/*": [
"src/app/models/*"
],
}
以下导入按预期工作
import { MyModel } from '../../models';
import { MyModel } from '@models/index';
但是下面的不起作用,而它应该起作用
import { MyModel } from '@models';
更新1:如果我更改路径定义如下:
/src/app/models
/index.ts
/my-model.ts
// index.ts
export * from './my-model';
"@models/*": [
"src/app/models/*",
"src/app/models/"
]
"paths": {
"@models": [
"src/app/models"
],
"@models/*": [
"src/app/models/*"
],
}
下面的导入也适用
import { MyModel } from '@models/';
更新2:刚刚注意到以下设置:
"@models/*": [
"app/models/*"
]
以下导入仅适用于angular cli,即使vc代码抱怨找不到该组件
import { MyModel } from '@models/';
更新3:有趣的观察结果。刚才查看了另一个项目的路径配置(由cli生成)和定义如下的路径:
/src/app/models
/index.ts
/my-model.ts
// index.ts
export * from './my-model';
"@models/*": [
"src/app/models/*",
"src/app/models/"
]
"paths": {
"@models": [
"src/app/models"
],
"@models/*": [
"src/app/models/*"
],
}
使用此设置,导入将按预期工作:
import { MyModel } from '@models';
所以现在的问题是,这是TS还是Angular CLI?也添加“@models”:[“src/app/models”]可能会有所帮助?@MikeOne如果添加此配置,它会改变一些东西。。但并非完全如此-请参阅更新。看起来像是baseUrl问题。请检查。至少它现在似乎起作用了,对吧?为了安全起见,我可能还会做一个-prod构建来确保你的解决方案继续工作。这不是一个解决方案,而是一个变通方法。我在3个不同的项目中使用了绝对路径,没有任何问题。是什么原因导致了这个问题。我也经常使用它们——有时也会遇到问题。我的IDE有时也无法解析导入。。只有在几次重新启动后,它才会“突然”看到它。不知道为什么..同时添加“@models”:[“src/app/models”]可能会有帮助?@MikeOne如果添加此配置,它会改变一些东西。。但并非完全如此-请参阅更新。看起来像是baseUrl问题。请检查。至少它现在似乎起作用了,对吧?为了安全起见,我可能还会做一个-prod构建来确保你的解决方案继续工作。这不是一个解决方案,而是一个变通方法。我在3个不同的项目中使用了绝对路径,没有任何问题。是什么原因导致了这个问题。我也经常使用它们——有时也会遇到问题。我的IDE有时也无法解析导入。。只有在几次重新启动后,它才会“突然”看到它。不知道为什么。。