日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Angular library 学习笔记

發布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular library 学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文

Use cases for Angular libraries

Angular 庫有 2 個常見用例:

  • 構建可重用的組件庫以在應用程序之間共享。

  • 構建共享服務層功能 - 例如。 用于處理外部數據源(例如 API)的客戶端。

雖然有很多 Angular 庫非常適合項目的情況,但值得考慮您的用例是否屬于這些,因為它確實引入了一些維護開銷。 請記住,您始終可以將功能編寫為應用程序中共享 Angular 模塊的一部分,并在必要時將其提取到庫中。

Creating an Angular library project

我們將創建一個 Angular 庫,以及一個使用該庫的演示應用程序。 我們可以使用以下命令創建這些:

ng new example-component-library --create-application=false
cd example-component-library
ng generate library example-component-library
ng generate application example-component-library-app

使用 --create-application=false 標志可以防止 Angular 創建名為“example-component-library”的應用程序,這是我們想要給庫本身而不是測試應用程序的名稱。

如果我們現在查看剛剛創建的工作區內部,我們可以看到有一個項目文件夾,其中包含每個庫(example-component-library)和應用程序(example-component-library-app)的子文件夾 我們剛剛生成的。 還有一個包含 e2e 測試項目的第三個文件夾,我們可以忽略它。

使用下面的命令行單獨 build library:

ng build --project=example-component-library

如果我們查看 dist 文件夾,我們將看到我們的庫已經構建,并且在 build 文件夾中,我們有許多不同的文件夾,其中包含適用于不同消費者的各種不同模塊格式的應用程序,以及一個包含 TypeScript 定義。

  • bundles - UMD 模塊格式。
  • esm5 - 主要使用 es5 的模塊格式,但也使用來自 es6 的導入/導出語法。
  • esm2015 - 使用 es2015/es6 的模塊格式。
  • fesm5 - esm5 的扁平化版本。
  • fesm2015 -peerDependencies esm2015 的扁平化版本。
  • lib - 庫的 TypeScript 定義。

這種格式稱為 Angular Package Format,它是用作 ng-packagr 輸出的格式,ng-packagr 是 Angular CLI 用來編譯庫的工具。

庫文件的項目結構:

首先,刪除現有的 example-component-library 模塊、組件和服務文件——我們不需要這些。

接下來我們將添加一個組件、一個管道和一個指令。 我們將遵循一種為每個模塊添加一個組件的模式——這將允許消費應用程序僅導入它感興趣的庫模塊,然后在構建過程中對所有其他模塊進行 tree shaken. 我強烈建議這樣做,因為隨著庫的增長,它確實會對應用程序包的大小產生影響。

  • ng generate module components/foo
  • ng generate component components/foo
  • ng generate module pipes/bar
  • ng generate pipe pipes/bar/bar
  • ng generate module directives/baz
  • ng generate directive directives/baz/baz

現在的項目結構:

最佳實踐:

每個模塊有一個組件,以允許對未使用的模塊/組件進行 tree shake 優化。

例外情況是始終一起使用的組件應保存在同一模塊中 - 例如。 如果您正在實現選項卡,則 TabGroupComponent 和 TabItemComponent 將位于同一模塊中。

接下來,我們必須將我們創建的每個組件添加到其模塊的導出中:

我們現在更新 public_api.ts 以導出庫中我們希望公開給消費應用程序的任何文件:

現在我們要做的就是重新構建,它就可以從應用程序中使用庫了。

Consuming our Angular library

開發環境

在開發過程中,使用我們庫的最佳方式是使用 npm link。 這將允許我們從消費應用程序的節點模塊文件夾中的目錄符號鏈接到庫的 dist 文件夾中的已編譯應用程序。

cd dist/example-component-library
npm link

我們可以從本地機器上的任何地方將一個 Angular 項目鏈接到這個庫。 從項目根文件夾:

npm link example-component-library

如果我們現在使用 watch 標志運行庫,同時在另一個終端窗口中運行 ng serve。

ng build --project=example-component-library
ng serve

這將允許我們同時開發應用程序和(一個或多個)鏈接庫,并看到應用程序在每次修改庫源代碼時重新編譯。

生產環境

對于生產環境,我們將我們的庫發布到 npm,然后使用 npm install 將其安裝到應用程序中。

首先,您需要創建一個 npm 帳戶。 現在從命令行登錄:

npm login

From the project root folder:

cd dist/example-component-library
npm publish

我們的包現在發布在 npm(公開)上,我們可以通過將它添加到我們的應用程序的 package.json 依賴項并運行 npm install 來安裝它:

"dependencies": {..."example-component-library": "~0.0.1" }

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的Angular library 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 丁香八月婷婷 | av动态| 蜜臀久久99精品久久久画质超高清 | 午夜精品久久久久久久四虎美女版 | 在线免费观看亚洲 | 少妇精品无码一区二区三区 | 好男人www在线视频 我们的2018在线观看免费高清 | 激情av| 国产又爽又黄视频 | 国产日韩一级片 | 深夜视频一区二区三区 | 女人18毛片毛片毛片毛片区二 | 色婷婷av一区二区三区之e本道 | 让男按摩师摸好爽 | 在线观看欧美日韩 | 18禁网站免费无遮挡无码中文 | 日本午夜三级 | 99r热 | 亚洲国产日韩欧美 | 毛片a片免费观看 | 美女啪啪一区二区 | 国产九九热 | 9l视频自拍九色9l视频 | 人人舔人人干 | 亚洲大逼 | 亚洲天堂热 | 黄色片在线免费观看视频 | 欧美黄色a级大片 | 东京av在线 | 一级特黄aaa | 欧美精品二区三区 | 久久久888 | 99re热视频 | 国产婷婷一区二区三区 | 午夜美女福利视频 | 欧美日韩高清在线观看 | 国精产品一区一区三区mba下载 | 澳门黄色一级片 | 国产精品videos | 大尺度叫床戏做爰视频 | 午夜影片| 欧美黑人又粗又大的性格特点 | 好好热视频 | 青青操操| 成人小视频在线 | 亚洲一区二三区 | 香蕉网站在线观看 | 国产精选中文字幕 | 男女调教视频 | 天天干天天操天天 | 91福利视频网 | 羞羞影院体验区 | 中文字幕免 | 女人久久 | 欧美成人综合色 | jizjiz中国少妇高潮水多 | 国产一区二区三区免费在线观看 | 亚洲激情婷婷 | 制服 丝袜 综合 日韩 欧美 | 成年人在线观看视频免费 | 色偷偷人人澡人人爽人人模 | 国产欧美日韩精品一区 | 91在线资源 | 特大黑人巨交吊性xx | 超碰97在线资源 | 久久五月天综合 | 极品人妻videosss人妻 | 成年人免费在线观看视频网站 | 亚洲精品欧美精品 | 亚洲美女毛片 | 狠狠躁日日躁夜夜躁av | 97色爱| 91久久久久久久 | 日韩欧美国产电影 | 久久久久国产一区二区 | 久久视频一区二区 | 精品无码久久久久久久久成人 | 五月天最新网址 | 岛国av网站 | 久久久国际精品 | 国产片一区二区 | 一区二区高清在线观看 | 精品一区二区三 | 免费一级片视频 | 激情久久av一区av二区av三区 | 无码人妻丰满熟妇奶水区码 | 色猫咪av在线 | 岳狂躁岳丰满少妇大叫 | 麻豆视频网页 | 国产精品无码av无码 | 亚洲第一毛片 | 华人永久免费视频 | caoprom超碰| 天天弄 | 制服师生在线 | 一区二区在线视频观看 | 亚洲视频在线观看一区 | 久久7777| 中文字幕人妻一区 |