首页 文章

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

提问于
浏览
1

我正在尝试为CI集成构建一个Angular 6库,而不将其集成到Angular App中 . (有很多原因)

到目前为止我所做的是:

  • 创建一个package.json以安装所有lib的依赖项

  • 创建 angular.json 像常规angular6应用程序引用ci文件(见下文)

  • 将所有 ng-packages.\*.json 复制到 ng-package.ci.\*.json 并更新其路径以引用正确的文件和目录(node_modules,entryfiles等) .

  • 将所有 ts-config.\*.json 复制到 tsconfig.ci.\*.json 并更新其路径以引用正确的文件和目录(src,dist等...)

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

无法确定@ angular / compiler-cli和typescript的版本 .

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

有没有人试图在不使用应用程序内的库的情况下构建其Angular 6库?

谢谢

2 回答

  • 0

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

    • 我现在能够在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 . 我将原始文件保存在root中,以便能够以集成模式将库用于应用程序 . (只需要将lib引用添加到应用程序的angular.json中,就好像它是在应用程序的stconfig中生成路径一样)

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

    • ng lint --format stylish --tslint-config ci/tslint.ci.json

    • ng build 通过将angular.json中的默认项目设置为 my-lib anf指向ci文件夹中的tsconfig和ng-package

    一个提示,root的package.json需要拥有来自新的角度应用程序的所有依赖项才能构建或测试库 .

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

  • 0

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

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

相关问题