【发布时间】:2021-07-17 09:29:17
【问题描述】:
我的 Angular 应用程序具有以下 mono repo 文件夹结构。
我在 app1/app2 中使用 library1 和 library2,同时将这两个库分别发布为 .tgz 以供其他 Angular 应用程序使用。
我正在使用 ng-packagr 以 Angular 包格式 (APF) 编译和打包 Angular 库。
使用以下命令创建库:
**ng build --library1**
**npm pack**
在目录/angular.json
"projects": {
"library1": {
"root": "libs/library1",
"sourceRoot": "libs/library1/src",
"projectType": "library",
"prefix": "library1",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "libs/library1/tsconfig.lib.json",
"project": "libs/library1/ng-package.json"
},
"configurations": {
"production": {
"project": "libs/library1/ng-package.prod.json"
}
}
}
}
在目录/libs/library1/ng-package.json
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/libs/library1",
"lib": {
"entryFile": "src/index.ts"
}
}
我需要什么:
-
现在我想结合 library1 和 library 2 来创建一个单独的库,可能是 libraryAll(libraryAll.tgz),它将导出 libray1 和 library 2。
-
我还需要一个共享模块,该模块将被两个库使用,并将成为最终库包的一部分。
【问题讨论】:
-
您可以创建GitSubmodule 功能,这样您就可以创建具有通用功能的新的单独repo,并且可以在必要时包含它
-
是的,我可以这样做,但它需要再次发布各个库的不同版本
标签: angular build monorepo ng-packagr