首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库构建失败与角9

库构建失败与角9
EN

Stack Overflow用户
提问于 2019-10-20 13:28:17
回答 2查看 7.9K关注 0票数 4

我正在尝试将这个库https://github.com/flauc/angular2-notifications从角2+迁移到角9。

最初的错误是关于已经成为泛型类型的ModuleWithProviders,所以我修复了它。我在这里还描述了一个错误,https://github.com/angular/angular/issues/32352,我用require('@angular/compiler-cli');修复了它,现在我面临另一个错误:

../node_modules/@angular/common/common.d.ts:115:22 - error NG6002:出现在NgModule.imports of SimpleNotificationsModule中,但无法解析为NgModule类。

我很难理解发生了什么,因为我以前从未构建过库,而且使用gulp构建似乎有点麻烦,因为这一行ngc = require('@angular/compiler-cli/src/main').main指的是一个不属于公共API的函数。

编辑:

按照评论中的想法(以及我自己的感受),我试图建立起来而不被吞咽:

  • 创建了一个angular.json文件
  • index.ts分离为public_api.tssimple-notifications.module.ts
  • 对文件和文件夹结构做了一些更改吗?

但我仍然有同样的错误..。

我的尝试:https://github.com/youkouleley/angular2-notifications我试着用ng build构建它,package.json中的脚本还没有更新

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-22 21:51:26

编辑2

现在角9被释放了:

https://angular.io/guide/creating-libraries#publishing-your-library

不建议将常春藤库发布到NPM存储库。在将库发布到NPM之前,使用--prod标志构建它,它将使用旧的编译器和运行时,称为View Engine,而不是Ivy。

编辑

https://next.angular.io/guide/ivy

如果您是库作者,则应从版本9开始继续使用视图引擎编译器。通过让所有库继续使用视图引擎,您将保持与使用常春藤的默认v9应用程序以及选择继续使用视图引擎的应用程序的兼容性。 有关如何编译或捆绑您的角库的更多信息,请参见创建图书馆指南。当您使用集成到角度CLI或ng-packagr中的工具时,您的库总是自动构建正确的。

我设法做到这一点,通过做一些修改,从回购你张贴的尝试。截图如下:

所作的改动如下:

package.json中的变化与此无关。

enableIvy:false意味着您的库将不使用常春藤呈现引擎(目前推荐用于库),但不会阻止您的库在启用常春藤的应用程序中使用。

值得注意的是,艾薇还处于某种实验性的状态。

annotateClosureCompiler: false:与这个问题有关,https://github.com/angular/angular/pull/26738

票数 6
EN

Stack Overflow用户

发布于 2020-02-14 08:06:38

我知道出了什么问题,我有一个角8项目(包含一个库项目),我已经升级到了角形9(也有一个lib : ng生成库核心,我首先创建了一个新的角9项目,以比较我用ng 8创建的项目的不同之处,我发现缺少了一些东西,下面是我遵循的步骤:删除node_modules -删除dist文件夹-在角9项目库中有一个名为: tsconfig.lib.prod.json的新文件。

代码语言:javascript
复制
{
  "extends": "./tsconfig.lib.json",
  "angularCompilerOptions": {
    "enableIvy": false
  }
}
  • 在angular.json中添加以下内容:
代码语言:javascript
复制
{
  ...
  "projects": {
     ...
     "configurations": {
            "production": {
              "tsConfig": "projects/core/tsconfig.lib.prod.json"
             }
      }
  ...
  }
}
  • 运行构建--prod,一切都会正常运行:D

PS:在这种情况下,这个库被称为“核心”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58473489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档