首页 > 解决方案 > 角度 8 条路径

问题描述

我有一个使用 Angular 8 的项目,我尝试在我的

src/app/helpers/auth.guard.ts
 import { AuthenticationService } from '@app/services';

我的 AuthenticationService ts 文件有一个路径

src/app/services/authentication.service.ts

当我运行 ng serve 我得到错误

ERROR in src/app/helpers/auth.guard.ts(4,39): error TS2307: Cannot find module '@app/services'.

这是我的 tsconfig.js

 {
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ],
    "paths": {
        "@app/*": ["src/app/*"],
        "@environments/*": ["src/environments/*"]
    }
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}

这是我的 tsconfig.app.json

{
 "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "src/test.ts",
    "src/**/*.spec.ts"
  ]
}

我尝试使用 --aot 运行项目,但这不起作用

标签: javascriptangulartypescript

解决方案


以下是可能出错的地方:

您的身份验证服务位于以下路径:

src/app/services/authentication.service.ts

但是当您尝试使用: 导入它时import { AuthenticationService } from '@app/services',它会尝试从services目录导入服务。您的service目录不导出身份验证服务,因此您收到此错误。

以下是您可以解决的方法:

  1. 创建一个名为index.tsin servicesdirectory 的文件,使其位于 path: src/app/services/index.ts
  2. 在此index.ts文件中,添加以下导出语句:
export * from './authentication.service.ts';

这将从services文件夹中导出您的服务,因此您的导入语句将能够在src/app/services/.

由于您的 tsconfig 中已经有路径别名,因此"@app/*": ["src/app/*"]您的 import 语句应该正确解析。

让我知道它是否不起作用。


推荐阅读