我整个上午都在 ts 路径上度过,以缩短我的导入路径。
如果您设置桶化,我可以确认自定义路径有效(索引文件导出您的模块(
root
├── client
│ ├──tsconfig.json
│ ├── src
│ ├──app
│ ├── shared
│ ├── services
│ ├── some.service.ts
├── common
│ ├── index.ts // exports * from each file
我的NG8 tsconfig.ts文件:
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@common": ["../common"], // works with barreling
"@services": ["./src/app/shared/services"] // only works with barreling
},
@services
不起作用...除非我设置桶(
在带有export * from './some.service';
的文件夹中shared
添加一个index.ts
文件(
@common
开箱即用,因为如上所述
。我是否遗漏了某些内容,或者我阅读的所有内容都遗漏了以这种方式导出模块的要求?
我的研究:
https://angularfirebase.com/lessons/shorten-typescript-imports-in-an-angular-project/
https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping
如何在 tsconfig.json 中使用路径?
更多...
使用您拥有的设置(没有桶index.ts
文件(,您的路径需要略有不同。
"paths": {
"@services/*": ["src/app/shared/services/*"],
},
然后,您将能够使用以下方法导入:
import { SomeService } from '@services/some.service'