首页 > 解决方案 > 错误 TS6059:/interfaces/ICard.ts' 不在 'rootDir' 下。'rootDir' 应包含所有源文件

问题描述

我的项目结构如下:

Some ASP.NET Dir
-projects/lib1
         /lib2
-src (Angular app)
-package.json
-angular.json

In lib2:
  /src
       -lib
          -interfaces
                     -ICard.ts
          -services
          -ui-components
                       -card
                            -card.component.ts
           ui-components.module.ts
           package.json (UI component's)
           public_api.ts (UI component's)

   public-api.ts
   package.json
   tsconfig.lib.json
       

src 的 public_api.ts:

export * from './lib/lib.service';
export * from './lib/lib.component';
export * from './lib/lib.module';
export { ICard } from './lib/interfaces/ICard';

在 card.component.ts 中:

import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';
import { ICard } from '../../interfaces/ICard';
import { CommonHelperService } from '../../services/common-helper.service';

@Component({
  selector: 'lib-card',
  templateUrl: './card.component.html',
  styleUrls: ['./card.component.scss'],
  encapsulation: ViewEncapsulation.ShadowDom,
})
export class CardComponent implements OnInit {
  @Input() Card: ICard;
  constructor(private commonHelper: CommonHelperService) {}

  ngOnInit(): void {
    this.Card = this.commonHelper.DefaultCardFallback;
  }
}

在 tsconfig.lib.json

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "outDir": "../../out-tsc/lib",
    "target": "es2015",
    "declaration": true,
    "inlineSources": true,
    "types": [],
    "lib": [
      "dom",
      "es2018"
    ]
  },
  "angularCompilerOptions": {
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "enableResourceInlining": true
  },
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}

构建此库时出现此错误:

错误 TS6059:文件“ASP.NET/projects/lib/src/lib/interfaces/ICard.ts”不在“rootDir”“ASP.NET\projects\lib\src\lib\ui-components”下。'rootDir' 应包含所有源文件。

为什么打字稿不包括界面?接口导出的正确方法应该是什么?

标签: angulartypescriptangular-library

解决方案


推荐阅读