【发布时间】:2018-07-26 20:33:48
【问题描述】:
这看起来很简单,但它不起作用(对我来说)
我正在运行一个 Angular 5 应用程序,该应用程序在与此类似的位置包含三个文件:
app_directory/tsconfig.json
app_directory/src/app/services/my-service.service.ts
app_directory/src/app/main/sub1/sub2/my-component.component.ts
在 my-component.component.ts 文件中,我可以使用以下行成功导入 my-service:
import { MyServiceService } from '../../../services/my-service.service.ts'
虽然这一切都很好而且花花公子,但每次我想导入此服务时都必须放置相对路径有点烦人,所以我做了一些检查,发现了这篇文章:How to avoid imports with very long relative paths in Angular 2?
所以我尝试做同样的事情并将我的 tsconfig.json 更改为以下内容:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./src/app/",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
并将我的导入更改为:
import { MyServiceService } from 'services/my-service.service.ts'
但这当然没有用。所以(不更改导入)我尝试了 baseUrl 的以下值:
.
./
./app
./src
./app/
./src/
src/app
src/app/
似乎 tsconfig baseUrl 根本没有效果。我在这里错过了什么?
【问题讨论】:
-
你试过放绝对路径吗?像
C:\Users\folder\app\src` or/c/users/folder/app/src`?先看看是否有效,或者尝试回显 baseUrl 的值,看看它是否正确 -
我没有尝试过,但我刚刚尝试过,也不起作用。即使它确实有效,也会非常烦人,因为这段代码部署在许多不同的服务器上,位于每台机器的文件结构中的不同位置
标签: angular typescript