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 Spartacus 项目里的 ng-package.json相关推荐
- SAP Spartacus 项目里的 .env-cmdrc 文件
项目根目录下有一个文件名为 .env-cmdrc: 在 package.json 里定义如下的 script: "build:ssrdev": "env-cmd --no ...
- SAP Spartacus cxOutlet里的元数据存储,outlet名称和待渲染Component的映射关系
cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...
- SAP Spartacus cxOutlet 里的 templatesRefs 的填充逻辑
cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...
- 如何查看 SAP Spartacus PageLayoutComponent 里的 template$ 的值
SAP Spartacus PageLayoutService.ts 里的 templateName$ get 操作:返回一个 Observable 对象,包裹的类型为 string. pipe 的第 ...
- SAP Spartacus url里默认electronics-spa的由来
单步调试时密切关注url的变化,初始url为localhost:4200: 这个electronics-spa即使在后台没有连通的情况下也能用,说明肯定不是从后台返回的: 这篇文章SAP Sparta ...
- SAP Spartacus store里引用的library是如何编译出来的
看一个基于SAP Spartacus library开发的storefront Angular应用的依赖: "@spartacus/assets": "^2.1.0&qu ...
- 使用 selector 从 SAP Spartacus state 里读取 Cart 数据
选择器 selector 是用于获取存储状态 state 切片的纯函数. @ngrx/store 提供了一些帮助函数来优化这个选择. 选择器在选择状态切片时提供了许多功能. 使用 createSele ...
- SAP Spartacus PagelayoutComponent里的section和slot
Page包含slots,slots包含Components. Spartacus使用page template来组织slots和Components. 一个page template包含了一些可被全局 ...
- SAP Spartacus单元测试里Component实例的创建细节
启动命令:ng test storefrontlib 单元测试里,使用TestBed创建Component实例的源代码: 首先在Chrome开发者工具里找到单元测试用例的实现源代码: 在_karma_ ...
最新文章
- Android记事本开发02
- 记录一下从标定模型中读取参数
- 优化标定的加入与实现
- Linux文件目录操作指令
- Hbuilder 左侧项目栏文件打开方式(单击?双击?) - 设置篇
- 团队管理(1)---故事与哲理(一)
- java实现远程唤醒一台计算机
- pong_计算机视觉与终极Pong AI
- 兰州大学计算机基础在线考试,[兰州大学]《计算机基础》2020年5月考试在线考核试题...
- 【笔记】(python)写入文件:写入空文件、写入多行、附加到文件
- cron每小时执行一次_crontab每小时运行一次
- keystone 存储 android,KeyStone存储器架构
- 工具用法有道云笔记: Mac和Windows上有道云笔记更换背景方法--202205更新
- php 2038年,php如何取2038年后的时间戳|php时间日期处理到2038年之后该怎么办 - PS下...
- 手把手带你入门深度学习(一):保姆级Anaconda和PyTorch环境配置指南
- matlab进行动力吸振器设计,干摩擦动力吸振器的MATLAB仿真及其基于频谱分析的优化设计...
- ckplayer 网页视频播放
- 查看系统时间和硬件时间
- malloc内存分配字节对齐问题
- 怎么在CAD编辑软件中批量打印图纸