ng build --aot失败,但是ng build在安装的库中工作正常

问题描述 投票:-1回答:1

[我们有一个图书馆项目,该项目位于发布到npmjs的nx项目中。它是从@ angular / material派生的组件的集合。该库已发布到npmjs @ vdlx / vdl-angular。

我们的构建使用ng-packagr根据其依赖关系依次构建每个组件。

从npm安装到干净的angular-cli或nx项目中时,ng build命令工作正常,但ng build --aot失败,并出现错误。

在库nx项目中,使用aot构建应用程序工作正常,可能是因为它从源(相对于node_modules或项目/ dist文件夹)获取了组件。

ERROR in ./src/app/app.module.ngfactory.js
Module not found: Error: Can't resolve 'badge' in '/Users/dale.manthei/Downloads/angular-hrvy5y/src/app'

这里是问题的简单重新创建:https://stackblitz.com/edit/angular-hrvy5y?file=src%2Fapp%2Fapp.module.ts

肯定可以在stackblitz中使用。在本地安装项目并运行ng build --aot失败。

我怀疑我们的库中缺少Angular-cli项目预期存在的某些内容。到目前为止,我一直在尝试使用该消耗性的应用程序,但是在那里没有乐趣。

建议。

angular-cli angular2-aot ng-packagr nrwl-nx
1个回答
0
投票

原来问题出在已发布的库中。当我发布问题时,我无法确定问题出在使用中的应用程序还是组件库。原来是后者。

为了对其进行跟踪,我们手动生成了ngfactory文件,以查找名称的简称badge

使用我能够返回到nx库项目中的组件ng-packagr配置。更改组件package.json中的名称以包含npmj命名空间以及库命名空间就可以解决问题。

有了这个,我们现在正在使用ng-packagr构建一个组件库,其中组件导入其他组件,就像https://github.com/nrwl/nx/issues/602中的这个问题一样。

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