Angular 6 库:在 CI 管道中构建库以创建库版本



我正在尝试构建一个用于CI集成的Angular 6库,而无需将其集成到Angular App中。

到目前为止,我所做的是:

  • 创建一个package.json以安装所有lib的依赖项
  • 创建一个引用 CI 文件的常规 Angular6 应用程序angular.json(见下文(
  • 复制所有要ng-package.ci.*.jsonng-packages.*.json并更新其路径以引用正确的文件和目录(node_modules、入口文件等(。
  • 复制所有ts-config.*.jsontsconfig.ci.*.json并更新其路径以引用正确的文件和目录(src、dist 等(。

我期望通过运行ng build能够构建库,但我有以下消息:

@angular/编译器-cli 和打字稿的版本不能 确定。

(但是所有软件包都已安装;我检查了两次(

有没有人尝试过在应用程序内不使用库来构建其 Angular 6 库?

感谢

目前不可能,但这里有一个悬而未决的问题:

https://github.com/angular/angular-cli/issues/10751

我回复你的回答,因为我能够解决我所有的问题。

  • 我现在能够在 CI 管道中构建(测试、lint(一个角度库
  • 我可以将此库集成到一个角度项目中。

这是我的做法。我在一个几乎为空的目录中生成了一个库。 要做到这一点ng generate library my-lib --skip-package-json --skip-ts-config你需要有一个package.json文件,在这个目录中有一个angular.json文件。我从一个新的应用程序ng new app中挑选了这些文件,并将应用程序引用从工作区删除到 angular.json(在项目部分(

生成库后,我在根目录ci创建了一个文件夹,在那里我复制了文件tsconfig.*.json,karma.json,ng-package.json和package.json。我将原始文件保留在根目录下,以便能够以集成模式将库使用到应用程序中(只需要将 lib 引用添加到应用程序的 angular.json 中,就像它是在应用程序的 stconfig 中生成的 + 路径一样(

我更新了ci文件夹中所有文件中的路径,以便能够运行以下命令,例如:

  • ng lint --format stylish --tslint-config ci/tslint.ci.json
  • 通过将 angular.json 中的默认项目设置为my-libanf 指向 ci 文件夹中的 tsconfig 和 ng-package 来ng build

一个提示,根目录的package.json需要具有来自新角度应用程序的所有依赖项,以便能够构建或测试库。

希望这个简短的解释会有所帮助。

最新更新