我正在尝试为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 回答
我回答你的回答,因为我能够解决我所有的问题 .
我现在能够在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需要拥有来自新的角度应用程序的所有依赖项才能构建或测试库 .
希望这个简短的解释会有所帮助
目前这是不可能的,但这里有一个未解决的问题:
https://github.com/angular/angular-cli/issues/10751