错误:在构建 Angular Lib 项目 Angular 13 时无法将类型实体 i10.BidiModule 解析为符号

问题描述 投票:0回答:4

我在构建 Angular Lib 项目时遇到错误:无法将类型实体 i10.BidiModule 解析为符号。还有另外 2 个库项目正在构建良好。这个新的 lib 项目在没有弹性布局和材料的情况下运行良好。但是当我在这个项目中使用柔性布局或材料时,我遇到了以下错误。我已经搜索了很多。有解决方案,例如在 tsconfig.lib.json 中包含

"preserveSymlinks": true
。不幸的是它不适合我。 欢迎对此提供任何帮助。

angular angular-material angular-cli angular-library angular-flex-layout
4个回答
23
投票

我今天遇到了同样的问题。我有一个 Angular 13 的库项目,在添加

@angular/flex-layout
作为依赖项后,我无法再构建与您完全相同的错误的库。

我通过将

@angular/cdk
添加为我的库的依赖项来解决这个问题。我在 Flex 布局 github 页面上找到了此信息,他们在“入门”部分中安装了这两个库。

我没有更改任何其他配置文件。

npm install @angular/cdk --save


4
投票

我的团队在将 SyncFusion 模块添加到我们在 monorepo 中构建的一些共享项目时遇到了这个问题。经过多次绞尽脑汁并使用

@angular/cdk
preserveSymlinks
解决方案失败后,我对 tsconfig.json 进行了调整,使其对我有用:

    "paths": {
        "@syncfusion/*": [
            "./node_modules/@syncfusion/*"
        ],
    },

无论出于何种原因,Typescript 有时会对在我们的环境中在哪里找到某些包感到困惑。我们的 tsconfig

paths
部分实际上有一个可以解决问题的项目。叹息。


4
投票

尝试“npm ls”,它将显示冲突的依赖关系,解决这些问题。这对我有用。


0
投票

我遇到了这个问题,因为我必须在 monorepo 中的一个项目中安装一个库,并且在同步 monorepo 中的项目时,我遇到了同样的错误。

我最终通过使用包名称和版本更新 lib-export/package.json 的依赖项数组以及仅使用包名称的 allowedNonPeerDependency 数组解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.