【发布时间】:2021-03-24 21:20:03
【问题描述】:
创建 Angular 库的最佳方法是什么? 我想创建一些库以添加到我的 Angular 项目中,提供常见案例服务,例如用于执行休息调用的 RestService、用于身份验证的 AuthService 以及一些组件(例如 )。该库应作为 npm 包分发。
我应该“手动”创建库、处理模块加载器/捆绑器、测试框架、分型等,还是可以按照here 的说明直接使用 angular/cli?
有没有cmets?
谢谢
【问题讨论】:
创建 Angular 库的最佳方法是什么? 我想创建一些库以添加到我的 Angular 项目中,提供常见案例服务,例如用于执行休息调用的 RestService、用于身份验证的 AuthService 以及一些组件(例如 )。该库应作为 npm 包分发。
我应该“手动”创建库、处理模块加载器/捆绑器、测试框架、分型等,还是可以按照here 的说明直接使用 angular/cli?
有没有cmets?
谢谢
【问题讨论】:
我们很幸运地利用了诸如https://github.com/thakurinbox/angular-library-starter 之类的启动项目
所有样板文件都由启动器处理,您只需添加代码即可。 (诚然,特定的启动器没有用于单元测试的 Karma 配置,但添加起来相当简单)。
【讨论】:
David Herges 有一个非官方的工具,名为 ng-packagr.
首先安装这个包:npm install ng-packagr
安装后,将名为 ng-package.json 的文件添加到项目的根目录。 并编辑如下:
{
"$schema": "./node_modules/ng-packagr/package.schema.json",
"ngPackage": {
"lib": {
"entryFile": "public_api.ts"
}
}
}
"packagr": "ng-packagr -p ng-package.json"
export * from './src/app/modules/sample.module';
会在您的项目中生成一个 dist 文件夹。
将目录更改为 dist 文件夹。
npm login 进入你的 npmjs 账户
注意导出模块中所有需要的组件和服务。
【讨论】: