91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angular2庫怎么用

發布時間:2021-08-16 11:13:29 來源:億速云 閱讀:114 作者:chen 欄目:web開發

本篇內容介紹了“Angular2庫怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

回想以前外鏈script標簽引用插件方式統治前端的時候,想要寫一個通用的ng1小插件的流程大概是:

1. 在單獨的angular.module("myPlugin")中寫指令、服務、過濾器等

2.將其壓縮打包成myplugin.min.js

3.其他項目中引入這個腳本然后angular.module("", ["myPlugin"])

現在到了ng2的時代,ng2自己的核心依賴都是使用npm管理的(而且是基于TypeScript),還非要手動寫出一個xxx.min.js總給人一種無從下手的感覺,所以現在如果要開發自己的ng2庫的話也要入鄉隨俗,利用起npm這個好東西。

筆者對于npm起初也是一臉懵逼,到現在也不敢說自己已能熟練使用之,不過npm只是個平臺,是為了方便開發者而存在的,而不是為了“為難”開發者,所以一點點摸索,也能使用得還過得去。

先給出在發布ng2庫到npm的整個大體的流程:

1. 要有一個ng2庫的完善的信息描述以及依賴文件(自然就是package.json)

2. 安裝ng2庫需要的依賴

3. 編寫實際代碼

4. 在根路徑下建立一個index文件導出依賴(比如你寫的服務啊模塊啊等等)

5. TypeScript預發布(寫的是.ts文件,這一步將生成得到.js.map、.js以及.d.ts文件)

6. 鏈接到npm并發布

下面筆者將演示如何把之前寫過的一個音頻服務發布到npm。

一、建立項目

創建根目錄ng2-firstyitimo,進入后cmd里直接 npm init ,照著引導一步步敲如我們的ng2庫的信息,包括了其版本號、作者、描述等信息,最終npm會為我們創建出這個package.json文件:

{
 "name": "ng2-firstyitimo",
 "version": "1.0.0",
 "description": "angular2 lib publishing test by yitimo",
 "main": "index.js",
 "scripts": {
 "prepublish": "tsc"
 },
 "keywords": [
 "angular2"
 ],
 "author": "yitimo",
 "license": "MIT"
}

這些參數大家肯定都見多非常熟悉了,這里只多提一點就是其中的 version 字段,每次重新publish我們的庫到npm時,都要更新此字段的值(因為版本更新了嘛)。

二、添加依賴

下一步就是要添加依賴,我們要發布的是ng2庫,所以必要的ng2依賴是肯定要有的,還有就是發布時編譯將使用到的typescript工具以及ng2的類型預定義庫,由于筆者使用的ng2版本是比較新的,使用到的依賴就在下面這個最新的完整package.json文件中:

{
 "name": "ng2-firstyitimo",
 "version": "1.0.4",
 "description": "angular2 lib publishing test by yitimo",
 "main": "index.js",
 "scripts": {
 "prepublish": "tsc"
 },
 "keywords": [
 "angular2"
 ],
 "author": "yitimo",
 "license": "MIT",
 "dependencies": {
 "@angular/common": "^2.4.6",
 "@angular/core": "^2.4.6",
 "rxjs": "^5.2.0"
 },
 "devDependencies": {
 "@types/core-js": "^0.9.35",
 "typescript": "^2.2.1"
 }
}

雖說是完整的package.json但是代碼也非常少,因為要寫的只是個ng2庫而已,需要的只有common以及core兩個ng2依賴。當然正常情況下,為了開發調試還是需要引入其他的依賴,如果向上面這樣只引用最少的東西,那就只能發布后在其他項目中引用了才能看到效果(因為此項目本身并不能運行)。

三、實際代碼

然后建立一個src目錄,在里面編寫實際的代碼,這里要寫的是之前寫過的音頻服務,代碼就不給出了,完成后的文件結構如下:

 Angular2庫怎么用

這里筆者選擇導出的是整個音頻模塊,所以里面的audio-studio組件必須在模塊的exports中聲明過,否則在其他項目中就是用不了這個組件了,不過其他的組件或指令不打算給外界使用,所以就不導出。服務也不需要導出,但是要在providers中聲明,并在后面的index中導出(不然就不能給其他項目使用此服務了)。

四、使用index文件導出庫

我們定義好的AudioModule以及AudioService是需要被其他項目引用或使用的,所以必須讓外界知道我們的庫提供了這兩個東西(還有個組件的話由于是在html標簽中使用,不需要被ts代碼知道,所以exports導出就夠了),這時就要在根目錄下建立一個index.ts文件,內容非常簡單,導出模塊和服務就夠了:

export * from './src/audio.module';
export * from './src/services/audio.service';

五、發布我們的ng2庫

現在最前面講到的6個步驟還剩5、6兩步,僅僅是在cmd悄悄指令就能完成。但是在這之前我們還需要一個tsconfig.json,用來告訴typescript要如何編譯我們的ts文件以及里面的類型預定義,如果沒有這個文件項目中的實際代碼是會報一大堆錯誤的,并且還不能被編譯。筆者這里給出的tsconfig.json如下所示:

{
 "compilerOptions": {
  "noImplicitAny": true,
  "module": "commonjs",
  "target": "ES5",
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  "sourceMap": true,
  "declaration": true,
  "typeRoots": [
   "../node_modules/@types"
  ],
  "types" : [
   "core-js"
  ]
 },
 "files": [
  "index.ts"
 ],
 "exclude": [
  "node_modules"
 ]
}

現在一鼓作氣來敲指令玩:

npm run prepublish

Angular2庫怎么用

npm link

Angular2庫怎么用

npm link ng2-firstyitimo

Angular2庫怎么用

npm publish

Angular2庫怎么用

完成了,現在在其他項目中安裝這個剛發布的ng2庫:

npm install --save ng2-firstyitimo

使用的時候:

import {AudioModule,AudioService} from 'ng2-firstyitimo';

總結:

發布ng2庫到npm的流程其實非常簡單,而且非常有成就感。個人認為的難點就在于跨不出第一步,就像筆者在之前也是完全沒頭緒,想寫個自己的ng2還得用npm,不過發布成功過一次之后,會發現這么一套流程其實都很清晰明了,并且還要再次提到,npm對ng2開發的幫助實在是太大了。

“Angular2庫怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松原市| 万年县| 论坛| 汕尾市| 望都县| 石城县| 颍上县| 曲阜市| 遂宁市| 贵定县| 且末县| 平邑县| 青冈县| 阿瓦提县| 敖汉旗| 石河子市| 梓潼县| 凉山| 东宁县| 九龙县| 额尔古纳市| 宁陕县| 晴隆县| 鸡西市| 淮阳县| 贵南县| 海城市| 滨海县| 孙吴县| 顺平县| 德昌县| 广州市| 林口县| 五寨县| 油尖旺区| 澄城县| 武胜县| 朝阳县| 塔城市| 额济纳旗| 开远市|