Может быть, есть больше ссылок в вашем проекте.

я есть рабочее пространство Angular CLI, содержащее два библиотечных проекта,foo а такжеbar, Когда я собираю вторую из двух библиотек,fooсборка завершается со следующей ошибкой:

ошибка TS6059: файл '/code/projects/bar/src/lib/types.ts' не находится в каталоге 'rootDir' '/ code / projects / foo / src'. Предполагается, что rootDir содержит все исходные файлы.

Error: error TS6059: File '/code/projects/bar/src/lib/types.ts' is not under 'rootDir' '/code/projects/foo/src'. 'rootDir' is expected to contain all source files.

    at Object.<anonymous> (/code/node_modules/ng-packagr/lib/ngc/compile-source-files.js:53:68)
    at Generator.next (<anonymous>)
    at /code/node_modules/ng-packagr/lib/ngc/compile-source-files.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (/code/node_modules/ng-packagr/lib/ngc/compile-source-files.js:3:12)
    at Object.compileSourceFiles (/code/node_modules/ng-packagr/lib/ngc/compile-source-files.js:19:12)
    at Object.<anonymous> (/code/node_modules/ng-packagr/lib/ng-v5/entry-point/ts/compile-ngc.transform.js:26:32)
    at Generator.next (<anonymous>)
    at /code/node_modules/ng-packagr/lib/ng-v5/entry-point/ts/compile-ngc.transform.js:7:71
    at new Promise (<anonymous>)

Я воспроизвел ошибку в репозитории песочницы на GitHubВот, Я максимально упростил код, пока все еще испытываю ошибку. Вы можете воспроизвести ошибку, выполнивnpm run build наROOTDIR-ожидать, все-источник-файлов-ошибка ветка. В чем причина ошибки? Может ли это быть ошибка сng-packagr или жеngc или жеtsc? Или это просто проблема конфигурации?

наблюдения

Ниже приведены изменения кода, с помощью которых я могу выполнить этап сборки, но я хотел бы знать, что вызывает ошибку с кодом как есть.

bar.component.tsСборка не удалась
export class BarComponent {

  list = this.barService.list();

  constructor(private barService: BarService) {}
}
Сборка пропусков

Инициализировать свойство списка в конструкторе вместо встроенного

export class BarComponent {

  list;

  constructor(private barService: BarService) {
    this.list = this.barService.list();
  }
}
bar.service.tsСборка не удалась
import { Injectable } from '@angular/core';
import { List, Item } from './types';

@Injectable({
  providedIn: 'root'
})
export class BarService {

  private _list: List = [];

  constructor() { }

  add(item: Item): void {
    this._list.push(item);
  }

  list(): List {
    return this._list;
  }
}
Сборка пропусков

Удалить типы данных

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class BarService {

  private _list: any[] = [];

  constructor() { }

  add(item: any): void {
    this._list.push(item);
  }

  list(): any {
    return this._list;
  }
}

Ответы на вопрос(2)

Ваш ответ на вопрос