Может быть, есть больше ссылок в вашем проекте.
я есть рабочее пространство 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;
}
}