我有下面的单回购文件夹结构为我的角应用程序。

我在app1/app2中使用library1和library2,也将这两个库分别发布为.tgz,供其他角度应用程序使用。
I使用ng-packagr编译和打包角包格式的角库。。
若要使用以下命令创建库:
**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 1/ng-Package.json中
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/libs/library1",
"lib": {
"entryFile": "src/index.ts"
}
}我需要的是:
发布于 2021-05-01 00:38:12
我认为,首先,您需要创建多项目的结构,角提供。您可以通过ng generate lib或ng generate application命令生成库和应用程序。
那么你可以为你的孩子打包。查看这个以获得更多信息:https://izifortune.com/multiple-packages-repository-with-angular/
发布于 2021-05-01 15:57:20
要将两个库组合成一个库,我建议您创建第三个库,它导入前两个库并使用不同的index.ts公开它。如果您想要以各种方式单独维护它,请使用此方法。
第一个库和第二个库都需要在第三个库使用和公开之前进行编译。
例如。LibraryAllModule,出口Library1Module和Library2Module。
index.ts看起来将是:
export { LibraryAllModule } from './libs/libraryAll/library-all.module';
export { Library1Module } from './libs/library1/library1.module';
export { Library2Module } from './libs/library2/library2.module';或者另一种方法是将来自两个库的代码报告到一个按模块划分的新库中。
index.ts将如下所示:
export { LibraryAllModule } from './libs/libraryAll/library-all.module';
export { Library1Module } from './libs/libraryAll/library1/library1.module';
export { Library2Module } from './libs/libraryAll/library2/library2.module';通过将这两个库组合成一个公共库,您还可以更容易地将一个公共模块放在两者之间共享。您可以在文件夹'libraryAll‘中声明它,然后在两个库中导入它。
发布于 2021-05-03 11:10:14
谢谢你的建议。
我使用ng packagr 辅助入口点特性解决了这个问题。
在库1中,我使用了现有的库2,并创建了另一个共享库库3。
现在我可以为libraryAll发布包含libray 1、libray 2和libray 3的包。
我也能出版个别的图书馆。
我遇到的唯一主要阻止程序是库1中的导入路径(库-3),而库2则抛出构建错误,当路径位于入口点文件夹之外时,我得到了rootDir问题。我实现的解决方案是从节点模块导入它并发布最终的库。
下面的链接将解释二级入口点的结构。
目前的结构是

https://stackoverflow.com/questions/67225441
复制相似问题