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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oppoa5呼吸灯在哪里设置
- 下一篇: SAP Spartacus Sparta