成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

詳解node中的包和包管理工具

本篇文章帶大家深度解析一下node的包和強大的包管理工具,希望對大家有所幫助!

詳解node中的包和包管理工具

node.js極速入門課程:進入學習

什么是包

Node.js 中的第三方模塊又叫做包。

就像電腦計算機指的是相同的東西,第三方模塊和包指的是同一個概念,只不過叫法不同?!鞠嚓P教程推薦:nodejs視頻教程】

包從哪里來的?

不同于 Node.js 中的內置模塊自定義模塊,包是由第三方個人或團隊開發出來的,免費供所有人使用。
在這里記筆記:免費的?。?!

為什么我們要用包?

由于 Node.js 的內置模塊僅提供了一些底層的 API,導致在基于內置模塊進行項目開發的時,效率很低。
包是基于內置模塊封裝出來的,提供了更高級、更方便的 API,極大的提高了開發效率。 包和內置模塊之間的關系,類似于 jQuery 和 瀏覽器內置 API 之間的關系。(jq是將瀏覽器內置的api進行了封裝)

包從哪里下載?

國外有一家 IT 公司,叫做npm, Inc. 這家公司旗下有一個超級牛的網站: https://www.npmjs.com ,它是全球最大的包共享平臺,你可以從這個網站上搜索到任何你需要的包!

怎么下載包

npm, Inc. 公司提供了一個包管理工具,我們可以使用這個包管理工具,從 https://registry.npmjs.org 服務器把需要的包下載到本地使用。
這個包管理工具的名字叫做 Node Package Manager(簡稱 npm 包管理工具),這個包管理工具隨著 Node.js 的安裝,包一起被安裝到了用戶的電腦上。

我們可以在終端中輸入npm -v來查看npm包管理工具的版本號

詳解node中的包和包管理工具
注意 : 我們的npm版本可能不一樣,大家不要恐慌

npm初體驗

格式化時間moment

使用 npm 包管理工具,在項目中安裝格式化時間的包 moment

代碼示例:

const moment = require('moment')const dt = moment().format('YYYY-MM-DD')console.log(dt);  // 2022-09-18
登錄后復制

注意:這里的YYYY-MM-DD是年月日的符號標識,在網站https://momentjs.com/docs中可以詳細的了解.

安裝包命令

如果你想安裝自己需要的包,可以使用以下命令:
npm install xxx 或者 npm i xxx(這個是簡寫形式,更加的方便快捷)

安裝包后出現的文件

初次裝包完成后,在項目文件夾下多一個叫做 node_modules 的文件夾和 package-lock.json 的配置文件。

其中:

  • node_modules 文件夾用來存放所有已安裝到項目中的包。require() 導入第三方包時,就是從這個目錄中查找并加載包。

  • package-lock.json 配置文件用來記錄 node_modules 目錄下的每一個包的下載信息,例如包的名字、版本號、下載地址等。

注意:我們不要手動修改 node_modulespackage-lock.json 文件中的任何代碼,npm 包管理工具會自動維護它們。

安裝指定版本的包

默認情況下,使用 npm install 命令安裝包的時候,會自動安裝最新版本的包。如果需要安裝指定版本的包,可以在包名之后,通過 @ 符號指定具體的版本

代碼示例:

詳解node中的包和包管理工具

解析包版本的含義(語義化版本規范)

在這里將會解決大家一直困惑的問題,這個版本號那一串數字到底是啥子意思,在這里黑馬哥良心的教學讓我直呼好家伙!真心詳細!!!(好好看,好好學)

包的版本號是以“點分十進制”形式進行定義的,總共有三位數字,例如 2.24.0
其中每一位數字所代表的的含義如下:

  • 第1位數字:大版本(比如:我們所玩的王者榮耀每過幾個月都會有大版本更新,那么的化第一位數字就會發生變化,大家下次觀察一波)

  • 第2位數字:功能版本(比如:王者榮耀的某個版本添加了新的功能,又叫小更新)

  • 第3位數字:Bug修復版本(比如:修復了閃退的bug,修復了人物模型的失真bug…)

版本號提升的規則:只要前面的版本號增長了,則后面的版本號歸零

包管理配置文件

npm 規定,在項目根目錄中,必須提供一個叫做 package.json 的包管理配置文件。用來記錄與項目有關的一些配置信息。例如:

  • 項目的名稱、版本號、描述

  • 項目中都用到了哪些包

  • 哪些包只在開發期間會用到

  • 那些包在開發部署時都需要用到

1. 多人協作問題

在這里先給大家舉一個例子:我們在進行多人項目開發時候,我們把自己寫的代碼交到碼云上,我
們總不能把node_modules安裝的依賴也提交上去啊,所以我們不把node_modules提交上去,因為第三方模塊的所占的體積過大,經常會出現我們的代碼總共才1M,第三方包都占30M,所以我們進行剔除.

剔除方法:
.gitignore文件中輸入node_modules即可!

2. 如何記錄項目中安裝了哪些包

項目根目錄中,創建一個叫做 package.json 的配置文件,即可用來記錄項目中安裝了哪些包。從而方便剔除node_modules 目錄之后,在團隊成員之間共享項目的源代碼。

注意:今后在項目開發中,一定要把 node_modules 文件夾,添加到 .gitignore 忽略文件中。

3. 快速創建 package.json

npm 包管理工具提供了一個快捷命令,可以在執行命令時所處的目錄中,快速創建 package.json 這個包管理配置文件:npm init -y

注意:
上述命令只能在英文的目錄下成功運行!所以,項目文件夾的名稱一定要使用英文命名,不要使用中文,不能出現空格。
運行 npm install 命令安裝包的時候,npm 包管理工具會自動把包的名稱和版本號,記錄到 package.json 中。

{   "name": "3",   "version": "1.0.0",   "description": "",   "main": "index.js",   "scripts": {     "test": "echo "Error: no test specified" && exit 1"   },   "keywords": [],   "author": "",   "license": "ISC",   "dependencies": {     "art-template": "^4.13.2",     "jquery": "^3.6.1",     "moment": "^2.22.2"   }}
登錄后復制

4. dependencies 節點

package.json 文件中,有一個 dependencies 節點,專門用來記錄您使用 npm install 命令安裝了哪些包。例如:我們上面的代碼中的"art-template": "^4.13.2","jquery": "^3.6.1","moment": "^2.22.2",說明了我們安裝了art-template、jquerymoment這三個包!

5. 一次性安裝所有的包

當我們從gitee上拉下來一個項目代碼,里面是沒有node_modules,這就需要我們自己去安裝依賴,需要先把所有的包下載到項目中,才能將項目運行起來。否則項目就不會跑起來!

那我們怎么做才能讓項目跑起來呢?別著急,我們只需在終端中運行npm install(npm i)就行了!這里運行這個代碼的目的是一次性安裝我們需要的所有依賴!

6. 卸載包

可以運行 npm uninstall 命令,來卸載指定的包,比如,我們需要卸載moment包,我們可以執行代碼:npm uninstall moment
注意:
npm uninstall 命令執行成功后,會把卸載的包,自動從 package.json 的 dependencies 中移除掉

7. devDependencies 節點

如果某些包只在項目開發階段會用到,在項目上線之后不會用到,則建議把這些包記錄到 devDependencies 節點中。
與之對應的,如果某些包在開發和項目上線之后都需要用到,則建議把這些包記錄到dependencies 節點中

你可以使用如下的命令,將包記錄到 devDependencies 節點中:

//安裝指定的包,并且記錄到 devDependencies 節點中npm i 包名 -D// 上部代碼是簡寫形式,下部的代碼是完整寫法:npm install 包名 --save-dev
登錄后復制

到這里,你就想問一個問題,那我怎么知道我安裝的這個包需不需要放在devDependencies呢?
一般情況下我們去npm網站中搜索你需要的包,它會提示你該包是否需要記錄到devDependencies中!

解決下包速度慢的問題

1. 為什么包下載速度慢

不難發現,我們在安裝包的時候它的速度也太慢了吧?為什么會發生這種情況呢?

因為:在使用 npm 下包的時候,默認從國外的 https://registry.npmjs.org/ 服務器進行下載,此時,網絡數據的傳輸需要經過漫長的海底光纜,因此下包速度會很慢。

2. 淘寶npm鏡像服務器

為了解決下載速度慢的問題,淘寶在國內搭建了一個服務器,專門把國外官方服務器上的包同步到國內的服務器,然后在國內提供下包的服務。從而極大的提高了下包的速度。

鏡像(Mirroring)是一種文件存儲形式,一個磁盤上的數據在另一個磁盤上存在一個完全相同的副本即為鏡像。

詳解node中的包和包管理工具
詳解node中的包和包管理工具

3. 切換npm的下包鏡像源

我們已經知道了淘寶鏡像可以幫助我們快速的下載包,那么怎么才能切換到淘寶鏡像源呢?
在終端中執行以下三步:

  • 首先查看我們當前的鏡像源:npm config get registry

  • 將下包的鏡像源切換為淘寶鏡像源:npm config set registry=https://registry.npmmirror.com/

  • 查看鏡像源是否下載成功 : npm config get registry

4. nrm

我們如果采取常規的切換鏡像源的方法,未免有點繁瑣,為了更方便的切換下包的鏡像源,我們可以安裝 nrm 這個小工具,利用 nrm 提供的終端命令,可以快速查看和切換下包的鏡像源。

  • nrm安裝為全局可用的工具 : npm i nrm -g

  • 查看所有的鏡像源 : nrm ls

詳解node中的包和包管理工具

  • 將下載包的鏡像源切換為 taobao 鏡像 : nrm use taobao

詳解node中的包和包管理工具

顯示這樣的話,就說明我們切換成功啦!

包的分類

使用 npm 包管理工具下載的包,共分為兩大類,分別是:1. 項目包 2. 全局包

1.項目包

那些被安裝到項目的 node_modules 目錄中的包,都是項目包。

項目包又分為兩類,分別是:
開發依賴包(被記錄到 devDependencies 節點中的包,只在開發期間會用到)
核心依賴包(被記錄到 dependencies 節點中的包,在開發期間和項目上線之后都會用到)

2.全局包

在執行 npm install 命令時,如果提供了 -g 參數,則會把包安裝為全局包。

全局包會被安裝到 C:Users用戶目錄AppDataRoamingnpmnode_modules 目錄下。

詳解node中的包和包管理工具

注意:

  • 只有工具性質的包,才有全局安裝的必要性。因為它們提供了好用的終端命令。

  • 判斷某個包是否需要全局安裝后才能使用,可以參考官方提供的使用說明即可。

3.將md文件轉為html

i5ting_toc 是一個可以把 md 文檔轉為 html 頁面的小工具(這個真的是嘎嘎好用,比如,如果我們在網上找學習資源的時候,部分會把筆記記為md文檔,我們使用瀏覽器打開md文檔布局特別的難以接受~),使用步驟如下:

# 將 i5ting_toc 安裝為全局包 npm i -g i5ting_toc # 調用 i5ting_toc ,輕松實現 md 轉 html 的功能 i5ting_toc -f 要轉的md文件路徑 -o
登錄后復制

上述代碼中-o的意思是,我們將在默認的瀏覽器中打開這個轉化后的md文件

規范的包結構

在清楚了包的概念、以及如何下載和使用包之后,接下來,我們深入了解一下包的內部結構

一個規范的包,它的組成結構,必須符合以下 3 點要求

  • 包必須以單獨的目錄而存在

  • 包的頂級目錄下要必須包含 package.json 這個包管理配置文件

  • package.json 中必須包含 name,version,main 這三個屬性,分別代表包的名字、版本號、包的入口

舉例:

詳解node中的包和包管理工具

小結

?本篇文章,詳細的解析了node中包的概念和npm,npm在日常開發中根本離不開,在框架中,也要使用npm去安裝架構,所以npm的學習必須是要透徹的,不要糊弄過去

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
最新中文字幕AV无码专区| 白嫩光屁股BBBBBBBBB| 91夜色精品偷窥熟女精品网站| AV无码人妻无码男人的天堂| 差差漫画网页登录页面弹窗| 国产草草影院CCYYCOM| 黑人女性猛交XXXXXⅩXX蘑| 久久免费看少妇高潮V片特黄| 农村寡妇精品一区二区三区 | 野花视频免费观看完整版| 中国猛少妇色XXXXX| 补课老师让我爽了一夜| 国产乱妇乱子在线播视频播放网站 | 99久久久无码国产麻豆| 亚洲A∨国产AV综合AV下载| 亚洲人成电影在线观看天堂色| 在线播放国产不卡免费视频| 俺去俺来也在线WWW色官网| 国产成人剧情AV麻豆果冻| 狠狠躁夜夜躁人人爽天天| 美人电影在线观看| 色五月丁香五月综合五月4438| 亚洲AV日韩精品久久久久久A| 影音先锋亚洲无码资源网| 成人AV片无码免费网站| 国产一区二区三区在线电影| 毛葺葺老太做受视频| 色欲av夜夜嗨av性色av| 亚洲人成绝网站色WWW| JAVASCRIPT中国免费| 国产裸体裸美女无遮挡网站| 久久毛片免费看一区二区三区| 日产精品一线二线三线优势| 亚洲AV无码乱码忘忧草亚洲人| 最新国产AⅤ精品无码| 国产GaySeXChina男同| 久久久久久久久久国产精品免费| 日本熟妇乱人伦XXXX| 亚洲精品自产拍在线观看| JLZZJLZZ亚洲| 黑色丝袜老师自慰喷水浪潮免费| 欧美黑人猛XXxXX内射| 性色AV一区二区三区咪爱四虎| _97夜夜澡人人爽人人喊_欧美| 国产高清免费AV片在线观看不卡| 林静公交车被做到高C的原因| 他将头埋进双腿间吮小核| 一区二区乱子伦在线播放| 国产VIVODESHD精品| 噜噜噜亚洲色成人网站∨| 无码国产欧美日韩精品| 52色擼99热99RE超碰| 国产又色又爽又刺激在线播放| 欧美一区二区三区放荡人妇| 亚洲国产成人久久一区二区三区 | 亚洲欧美另类在线视频| 成人综合婷婷国产精品久久蜜臀| 久久精品国产清高在天天线| 色欲人妻AAAAAA无码| 在线天堂おっさんとわたし| 国产麻豆MD传媒视频| 欧美精产国品一二三区别| 亚洲VA中文字幕无码久久不卡| 不屈的儿媳妇电视剧汉语版| 久久久久久亚洲精品无码| 四虎影视在线观看2413| 99在线精品视频高潮喷吹| 精品久久久久久无码免费| 色综合色狠狠天天综合网| 中文字幕丝袜人妻制服丝袜在线 | 日韩系列精品无码免费不卡| 永久免费看照片的聊骚软件| 国产女人天天春夜夜春| 人妻无码人妻有码中文字幕| 伊人久久大香线蕉综合影院首页| 国产午夜亚洲精品理论片八戒 | 色欲综合久久躁天天躁蜜桃| 中文字幕在线播放| 精品国产AⅤ一区天美传媒| 体型差糙汉乖乖女| 啊灬啊灬啊灬快灬深视频无遮掩 | 欧美做受又硬又粗又大视频| 亚洲熟妇另类久久久久久| 国产精品永久免费| 日韩论理论片在线观看 | 亚洲日韩中文第一精品| 国产精品无码DVD在线观看| 人妻少妇看A偷人无码电影| 中国熟妇内谢69XXXXX| 精品卡一卡2卡三卡四卡乱码 | 天堂√最新版中文在线天堂| Japanese日本护士XXXX18一19| 久久综合国产乱子伦精品免费| 亚洲爱婷婷色婷婷五月| 国产精品久久久久久久9999| 日本VPSWINDOWS怀孕| 99国精品午夜福利视频不卡99 | 色欲av蜜臀一区二区四区| MM131美女图片尤物写真丝袜| 老色鬼久久亚洲AV综合| 亚洲色成人WWW永久网站| 国产在线精品一区二区三区不卡 | 护士爽到疯狂潮喷好爽| 午夜精品一区二区三区在线视 | 久久久亚洲欧洲日产国码ΑV| 亚洲爱婷婷色婷婷五月| 国产特级毛片AAAAAA视频| 天天做天天爱夜夜爽毛片毛片| 草莓视频APP在线下载| 欧美性猛交XXXX黑人猛交| 337P粉嫩日本欧洲亚洲大胆| 老外粗猛长爽的视频| 一二三四免费观看高清视频| 狠狠色噜噜狠狠狠7777米奇| 性生交片免费无码看人| 国产人澡人澡澡澡人碰视| 无码 制服 丝袜 国产 另类| 国产AV寂寞骚妇| 熟妇人交VIDEOS复古| 高h乱好爽要尿了潮喷了| 少妇人妻大乳在线视频不卡 | 少妇人妻大乳在线视频不卡| 成年免费A级毛片免费看| 日本丰满少妇无码AⅤ波多| 啊灬啊灬啊灬快灬高潮少妇软件| 全黄H全肉边做边吃奶| 暴行JAPANESE人妻| 日韩v亚洲v欧美v精品综合| 成年轻人电影WWW无码| 日本嫩交12一16XXX视频| 纯肉的日本动漫 在线看| 三上悠亚AV影院在线看| 国产AⅤ激情无码久久| 偷看自己婆给别人玩经过| 国产精品无码专区在线播放 | 久久99精品久久久久子伦| 亚洲午夜精品久久久久久人妖| 久久久久亚洲AV综合仓井空| 曰韩免费无码AV一区二区| 免费少妇A级毛片| JLZZJLZZ全部女高潮| 日韩无码一区视频| 国产成人综合久久久久久| 小雪你的奶好大把腿张开| 黄 色 网 站 免 费 涩涩屋 | 吃奶呻吟打开双腿做受动态图| 上课我穿超短裙被同桌摸出水| 国产成人AV在线综合| 小嫩妇里面又嫩又紧| 娇妻呻吟黑人又粗又大视频 | 美女高潮流白浆娇喘免费网站| 91人妻人人澡人人爽| 日本少妇春药特殊按摩3| 国产精品国产三级国产AⅤ| 亚洲AV无码一区二区三区dv| 久久久久亚洲AV无码网站| 中文字幕无码日韩专区免费| 人妻AV无码系列一区二区三区| 丰满熟妇乱又伦在线无码视频| 性猛交富婆Ⅹ×××乱大交| 久久国产乱子伦精品免费女人| 91精品人妻一区二区三区蜜蜜挑 | 男男喷液抽搐高潮呻吟AV| 波多野结衣的电影| 无码中文人妻在线三区| 久久99国产精品久久99| 91人妻丰满熟妇Aⅴ无码| 色哟哟网站在线观看| 国产又黄又爽又刺激的免费网址| 野草乱码一二三四区别在哪| 欧洲-级毛片内射| 国产精品国产自线拍免费软件| 亚洲欧洲美洲无码精品VA| 欧美精品久久久久久精品爆乳| 国产99视频精品免费视看6| 亚洲VA在线VA天堂VA无码| 免费A级毛片无码A∨蜜芽试看 | 搡BBBB搡BBBB搡BBBB| 哈昂~哈昂够了太多了老师| 中文字幕高清免费日韩视频在线 | 亚洲AV午夜福利精品一区人妖| 蜜臀久久99精品久久久久久| 东北大坑续集1至60| 亚洲精品无码AV人在线观看| 欧美激情视频一区| 国产乱码一区二区三区免费| 在公交车上弄到高C了公交车最后| 日本XXXXXXXXX69| 极品少妇XXXX精品少妇小说| chi老女人老熟女HD| 性生大片免费观看性| 欧美VPSWINDOWS另类| 国产毛片久久久久久国产毛片| 中国少妇内射XXXXX-百度| 少妇性活BBBBBBBBB四川| 久久久久精品久久九九| 粉嫩av一区二区三区| 一本色道无码道在线观看| 少妇被黑人到高潮喷出白浆| 久久久久亚洲AV成人网人人软件|