首页 > 解决方案 > 如何在 tsconfig.json 文件中为外部库配置路径属性

问题描述

在这里[a link]找到了对我正在尝试做的最接近的解释。我仍然在努力让我的解决方案编译。

我有我想在我的项目中使用的外部类型,并且它们都具有命名空间“DS/”的 .d.ts 文件,我将其存储在一个名为 typings 的文件夹中。下面是我的简单 Angular 应用程序的文件夹结构。

-MyAppName
--typings
----all my modules d.ts
--src
----app
-tsconfig.json

这是我的 tsconfig.json 文件,如下所示

"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": {
      "DS/*": [
        "typings/*"
      ],
      "*": [
        "src/*"
      ]
    }
  },
  "include": [
    "typings/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }

导入库时出现错误,如下所示 import { MyModuleName } from 'DS/MyModuleName';

./src/app/app.module.ts 中的错误找不到模块:错误:无法解析“MyAppName\src\app”中的“DS/MyModuleName”

我正在使用 AngularCLI 构建应用程序。我未能配置我的 tsconfig 文件以支持这些外部导入的库。不知道我做错了什么。请帮忙。

标签: angulartypescripttypescript-typingstypescript2.0

解决方案


根据你的树,试试你的 tsconfig.ts

"typeRoots": ["node_modules/@types", "typings" ]...

"paths": {
  "DS/*": [
    "typings/*"
  ],
}

"include": ["src", "typings"],

然后在你的 app.module.ts

import { MyModuleName} from 'DS/myModuleName.module';

推荐阅读