SAP Spartacus 项目里的 ng-package.json
如果你发现自己要在多个应用中解决同样的问题(或者要把你的解决方案分享给其它开发者),你就有了一个潜在的库。 简单的例子就是一个用来把用户带到你公司网站上的按钮,该按钮会包含在你公司构建的所有应用中。
使用如下命令行创建 library:
ng generate library my-lib
当你生成一个新库时,该工作区的配置文件 angular.json 中也增加了一个 ‘library’ 类型的项目。下图是一个例子:
上图第464行,project 属性,指向一个 ng-package.json 文件:构建库时,ng-packagr 用到的配置文件。
其内容:
关于 ng-packagr 更多内容,请查阅这篇知乎文章:使用 ng-packagr 打包 Angular:
为了让 Angular 类库应用范围更自由,Angular 提出一套打包格式建议名曰:Angular Package Format,包括 FESM2015、FESM5、UMD、ESM2015、ESM5、ES2015 格式,不同格式可以在不同的环境(Angular Cli、Webpack、SystemJS等)中使用。
传统方式需要对这些格式逐一打包,一个示例打包脚本写法。这种写法只能针对不同项目的配置,而且除非你了解这些格式的本质否则很难维护;后来社区根据 APF 规范实现了类库 ng-packagr,通过简单的配置可以将你的类库打包成 APF 规范格式。
要让库代码可以复用,你必须为它定义一个公共的 API。这个“用户层”定义了库中消费者的可用内容。该库的用户应该可以通过单个的导入路径来访问公共功能(如 NgModules、服务提供者和工具函数)。
库的公共 API 是在库文件夹下的 public-api.ts 文件中维护的。当你的库被导入应用时,从该文件导出的所有内容都会公开。请使用 NgModule 来暴露这些服务和组件。
更多Jerry的原创文章,尽在:“汪子熙”:
相关文章
- SAP UI5 Page 控件的构造函数参数讲解
- SAP UI5 SimpleForm 的 two-column layout 布局
- SAP UI5 sap.ui.layout.Grid 控件宽度百分比的设置原理
- SAP UI5 应用中的 sap.ui.require.toUrl 使用场景
- SAP UI5 sap.ui.base.ManagedObject 的构造函数参数讲解
- SAP ERP实施项目,到底是公司适应系统还是系统适应公司?
- 什么是 SAP ABAP 的 include structure
- 「SAP ABAP」OPEN SQL的DML语句你了解多少 (附超详细案例讲解)
- 澄清一些对 SAP UI5 响应式表格 sap.m.Table 的常见理解误区试读版
- SAP UI5 的数据绑定语法概述
- Oracle购买SAP: 开启新数据时代(oracle收购sap)
- SAP 库存相关表格详解编程语言
- SAP MM ME21N 创建委外采购PO报错-Not possible to determine any components-之对策详解编程语言
- SAP移动平均价格与标准价格详解编程语言
- SAP OBYC自动记账的实例说明 +VALUE STRING详解编程语言
- sap自带samples详解编程语言
- SAP vs Oracle:差异点与解析(sap和oracle的区别)
- 比较:Oracle与SAP的对比(oracle和sap)
- 对比:Oracle 与 SAP的优势(oracle 与 sap)
- 数据库解决方案如何使用SAP创建Redis数据库(sap怎么创建redis)
- 对比Oracle和SAP价格比较哪个是更值得投入的选择(oracle与sap价格)
- 展望未来Oracle与SAP的合作结盟前景(oracle、sap)
- Oracle与SAP金蝶谁更具竞争力(oracle sap金蝶)
- Oracle和SAP教程一步一步学习(oracle sap教程)