在Angular 6中,我使用的是 ng生成应用程序,因为我将有多个应用程序必须共享一些库。通过这种方法,我的文件夹结构如下:
projects-> app1-> tsconfig.app.json
projects-> app2-> tsconfig.app.json
tsconfig.json 与 projects 文件夹位于同一级别
注意:当我们在Angular 6中使用 ng g应用程序时,将创建这样的文件夹结构。
我想在组件或服务等中使用相对路径进行这样的导入:
从“ src / services / example.service”导入{ExampleService};
不必像这样使用它:
从“ ../../../services/example.service”导入{ExampleService};
如何为如上所述创建的各个应用程序提供此功能?
我的tsconfig.json就是这样
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"downlevelIteration": true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
我的tsconfig.app.json是这样的:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/app",
"types": ["node"]
},
"exclude": ["test.ts", "**/*.spec.ts"]
}
我尝试在tsconfig.app.json中给出这样的内容:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "./",
"outDir": "../../out-tsc/app",
"types": ["node"]
},
"exclude": ["test.ts", "**/*.spec.ts"]
}
但这没用。
我想直接使用 src 使用相对路径来消除多级分辨率(../../../)
答案 0 :(得分:0)
您应该查看paths
中的tsconfig.json
编译器选项。有了它,您可以例如执行以下操作:
"compilerOptions": {
"paths": {
"@services/*": [
"src/services/*"
]
}
}
然后您可以使用以下路径从打字稿项目中的任何文件导入:
import { ExampleService } from '@services/example.service';
无需使用@
,您可以随意命名