【问题标题】:Short Import Typescript path mapping doesnt work in Angular 8 Project短导入 Typescript 路径映射在 Angular 8 项目中不起作用
【发布时间】:2020-04-11 12:27:38
【问题描述】:

我的 Angular 项目结构如下所示:

我的目标是能够将 register.component.ts 导入到 auth-routing.module.ts 中

import { RegisterComponent } from '@pages/auth/authpages/register/register.component';

为此,我添加了 tsconfig.json 的路径,如下所示:

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

      "@pages/*": ["app/pages*"]
    }
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}

由于某种原因,它仍然无法正常工作。 该组件已正确导出,并且可以使用标准 ts 路径作为目标。 有谁知道问题出在哪里?

【问题讨论】:

  • 你得到什么错误?你能检查一下"baseUrl": "./src","@pages/*": ["./app/pages/*"] 有什么不同吗?也许即使只是"@pages/*": ["app/pages/*"] 也能完成这项工作
  • 它只是说“无法从路径中找到模块”,建议的代码不会改变任何东西。

标签: json angular typescript path tsconfig


【解决方案1】:

尝试改变这个

"@pages/*": ["app/pages*"] 

"@pages/*": ["app/pages/*"]

【讨论】:

  • 解决方案部分工作,现在错误在 vs 代码中消失了,但是在运行应用程序时,它会在控制台中打印相同的错误。不明白为什么
  • src/app/pages/auth/auth-routing.module.ts:4:35 中的错误 - 错误 TS2307:找不到模块“@pages/auth/authpages/register/register.component” .
  • hmmm.... 很奇怪,我尝试将它设置为在我的本地工作。重新运行应用程序也一样?
  • 还是一样,可能是因为路由 /auth/register 设置为延迟加载。但是奇怪的是 vs 代码说没有错误而节点说错误
  • 我找到了解决此问题的方法,我在 tsconfig.spec 和 tsconfig.app 中也将 baseURL 更改为“../src”。之前它只是“./” 现在 vs 代码对此不满意,并将三个文件标记为“问题”,但应用程序编译没有错误。也许你有一个解决办法?如果不是,我仍然会接受您的解决方案
猜你喜欢
  • 2020-12-02
  • 2018-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 2019-07-07
  • 2017-07-05
相关资源
最近更新 更多