- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Angular CLI 工作区,其中包含两个库项目,foo
和 bar
。当我构建两个库中的第二个库 foo
时,构建失败并出现以下错误:
error TS6059: File '/code/projects/bar/src/lib/types.ts' is not under 'rootDir' '/code/projects/foo/src'. 'rootDir' is expected tocontain all source files.
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 上的沙盒存储库中重现了错误 here .我已尽可能简化代码,同时仍然遇到错误。您可以通过在 rootDir-expect-all-source-files-error 上执行 npm run build
来重现错误分支。错误的原因是什么?这可能是 ng-packagr
或 ngc
或 tsc
的错误?还是仅仅是配置问题?
下面是我可以使构建通过的代码更改,但我想知道是什么导致了代码的错误。
export class BarComponent {
list = this.barService.list();
constructor(private barService: BarService) {}
}
在构造函数中初始化列表属性而不是内联
export class BarComponent {
list;
constructor(private barService: BarService) {
this.list = this.barService.list();
}
}
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;
}
}
最佳答案
这看起来像是由于 TypeScript 2.9
中引入的 import types
而出现的问题。发出时,这些未正确重新布线,请参见第 3 行。
dist/bar/lib/bar.component.d.ts(5,11):
export declare class BarComponent implements OnInit {
private barService;
list: import("projects/bar/src/lib/types").Item[];
constructor(barService: BarService);
ngOnInit(): void;
}
在上面发出的 dts
中,list: import("projects/bar/src/lib/types").Item[];
应该类似于 import("./types").Item[];
代替。
解决此问题的方法是从您的代码中显式设置它,而不是推断类型。
在 bar.component.ts
中更改以下内容;
list = this.barService.list();
到:
list: Item[] = this.barService.list();
这将删除类型导入并构建消费库。
我还检查了一些 future 版本的 TypeScript,它仍然是 TypeScript 3.0.1
中的一个问题,但看起来它已经在 dev
版本中得到解决TypeScript 3.1.0
,即 3.1.0-dev.20180813
关于angular - 'rootDir' 应包含所有源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51850063/
我收到了这个相当无意义的 tsc 编译错误: error TS6059: File '/Users/alex/codes/interos/teros-cli/src/logging.ts' is no
这是我第一次使用 sanity,我遇到了这个问题,在运行 expo start 时,如果你能帮助我,我将非常感谢 jest-haste-map: Haste module naming collisi
我们正在使用 Visual Studio 2017 并且有两个独立的 Web 项目,它们应该共享一些用 TypeScript 编写的 React 组件。还可以共享 JavaScript 文件和 CSS
我正在学习使用Hbase,并对hbase.rootdir的配置感到困惑。 namenode(active)在服务器hd1上。 namenode(standby)位于服务器hd2上。 问题是: 我必须配
我有一个 Angular CLI 工作区,其中包含两个库项目,foo 和 bar。当我构建两个库中的第二个库 foo 时,构建失败并出现以下错误: error TS6059: File '/code/
$rootDir/gradle目录用于什么(不是.gradle)?在构建期间,默认情况下是否从该目录中读取任何内容?是否有关于该目录中应包含哪些内容的约定? 最佳答案 好吧,gradle目录用于存储G
我有一个具有以下目录结构的项目: . .. core/start.py tests/test_curve.py pytest.ini pytest.ini的内容是: [pytest] testpath
我在 HDFS 上针对 hbase 表中存在的数据运行 map reduce 作业。当我在玩配置时,我观察到了这一点。 conf.set( "hbase.rootdir", "hdfs://" + h
我正在尝试使用如下所示的任务将文件复制到 rootDir... task copyFilesToProjectRoot(type: Copy) { from (fileTree(dir: *s
我在 public 下有一张图片文件夹。 如何在 symfony4 中获取我的图像目录? 在 symfony 3 中,它相当于: $webPath = $this->get('kernel')->ge
我有一个包含一些组件的大型仓库。 \my_repo |--modul1 |--modul2 |--modul3 |--modul4 |--modul5 |--modul6 ... 当我想使用使用另一个
我正在尝试将 TypeScript 与 React Native 结合使用。 这是我的tsconfig.json: { "compilerOptions": { "target
我看到 this问题,但它略有不同,没有答案 我有几个 git 子模块。它们是现有的大型项目,我认为我可以直接重用其中的部分,例如: myproject/ src/ submod1/src
我正在开发我的第一个 Angular 7 库,但是在尝试编译该库时出现此错误。 错误:错误 TS6059:文件 '...environment.ts' 不在 'rootDir' 'my-angular
在我的 Grails 项目中,我使用 elfinder 插件来管理文件和目录。我想要一个动态的根目录,因为我将插件用于不同的文件夹。 目录路径如下: grails.plugin.elfinder.ro
我正在尝试在我的 TypeScript 应用程序中导入 package.json: import packageJson from '../package.json'; 我的 tsconfig.jso
我需要在 Next.js 应用程序的上下文中合并 Cypress 覆盖率报告和 Jest 覆盖率报告。 Jest 会将文件列为 my-app/src/whatever。 Cypress 仅显示 src
tyescript 中的 rootDir 和 baseUrl 有什么区别? 根据 ts 文档 基本网址 Base directory to resolve non-relative module na
我遇到了一个错误,我需要你的帮助。感谢观看这个问题。 我的情况:我正在为我的项目配置 Drone CI 工具,当我运行 时我得到了这个在drone.yml 上进行单元测试 . Validation E
我正在尝试根据 apache 网站上的设置以伪分布式模式运行 HBase,但我无法正确配置 hbase.root 目录。 这是我的配置文件的样子: 在 Hadoop 目录中: conf/core-si
我是一名优秀的程序员,十分优秀!