Twi*_*her 4 gulp angular angular-library angular-ivy angular9
我正在尝试将此库https://github.com/flauc/angular2-notifications从 Angular 2+迁移到 Angular 9。
最初的错误是关于ModuleWithProviders已经成为泛型类型的,所以我修复了它。我也在这里描述了一个错误https://github.com/angular/angular/issues/32352我修复了它require('@angular/compiler-cli');,现在我面临另一个错误:
../node_modules/@angular/common/common.d.ts:115:22 - 错误 NG6002:出现在 SimpleNotificationsModule 的 NgModule.imports 中,但无法解析为 NgModule 类
我很难理解发生了什么,因为我以前从未构建过库,并且使用 gulp 构建似乎有点 hacky,因为这一行ngc = require('@angular/compiler-cli/src/main').main引用了一个不属于公共 API 的函数。
编辑:
按照评论中的想法(以及我自己的感觉),我尝试在没有吞咽的情况下进行构建:
angular.json文件index.ts成public_api.ts和simple-notifications.module.ts但我仍然有同样的确切错误......
我的尝试:https : //github.com/youkouleley/angular2-notifications
我尝试用 构建它ng build,其中的脚本package.json尚未更新
编辑 2
现在 Angular 9 发布了:
https://angular.io/guide/creating-libraries#publishing-your-library
不建议将 Ivy 库发布到 NPM 存储库。在将库发布到 NPM 之前,使用 --prod 标志构建它,该标志将使用较旧的编译器和运行时(称为视图引擎)而不是 Ivy。
编辑
https://next.angular.io/guide/ivy
如果您是库作者,则应从版本 9 开始继续使用 View Engine 编译器。通过让所有库继续使用 View Engine,您将保持与使用 Ivy 的默认 v9 应用程序以及已选择的应用程序的兼容性继续使用视图引擎。
有关如何编译或捆绑 Angular 库的更多信息,请参阅创建库指南。当您使用集成到 Angular CLI 或 ng-packagr 中的工具时,您的库将始终以正确的方式自动构建。
我设法通过对您发布的尝试的 repo 进行一些更改来使其正常工作。截图如下:
的变化package.json无关紧要。
enableIvy:false 意味着您的库不会使用 Ivy 渲染引擎构建(目前推荐用于库),但不会阻止您的库在支持 Ivy 的应用程序中使用。
值得注意的是,IVY 仍处于某种程度的实验模式
annotateClosureCompiler: false:与此问题有关https://github.com/angular/angular/pull/26738
| 归档时间: |
|
| 查看次数: |
6238 次 |
| 最近记录: |