久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

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

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

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

node.js極速入門課程:進(jìn)入學(xué)習(xí)

什么是包

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

就像電腦計(jì)算機(jī)指的是相同的東西,第三方模塊和包指的是同一個(gè)概念,只不過叫法不同。【相關(guān)教程推薦:nodejs視頻教程】

包從哪里來的?

不同于 Node.js 中的內(nèi)置模塊自定義模塊,包是由第三方個(gè)人或團(tuán)隊(duì)開發(fā)出來的,免費(fèi)供所有人使用。
在這里記筆記:免費(fèi)的?。。?/code>

為什么我們要用包?

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

包從哪里下載?

國(guó)外有一家 IT 公司,叫做npm, Inc. 這家公司旗下有一個(gè)超級(jí)牛的網(wǎng)站: https://www.npmjs.com ,它是全球最大的包共享平臺(tái),你可以從這個(gè)網(wǎng)站上搜索到任何你需要的包!

怎么下載包

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

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

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

npm初體驗(yàn)

格式化時(shí)間moment

使用 npm 包管理工具,在項(xiàng)目中安裝格式化時(shí)間的包 moment

代碼示例:

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

注意:這里的YYYY-MM-DD是年月日的符號(hào)標(biāo)識(shí),在網(wǎng)站https://momentjs.com/docs中可以詳細(xì)的了解.

安裝包命令

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

安裝包后出現(xiàn)的文件

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

其中:

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

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

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

安裝指定版本的包

默認(rèn)情況下,使用 npm install 命令安裝包的時(shí)候,會(huì)自動(dòng)安裝最新版本的包。如果需要安裝指定版本的包,可以在包名之后,通過 @ 符號(hào)指定具體的版本

代碼示例:

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

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

在這里將會(huì)解決大家一直困惑的問題,這個(gè)版本號(hào)那一串?dāng)?shù)字到底是啥子意思,在這里黑馬哥良心的教學(xué)讓我直呼好家伙!真心詳細(xì)!!!(好好看,好好學(xué))

包的版本號(hào)是以“點(diǎn)分十進(jìn)制”形式進(jìn)行定義的,總共有三位數(shù)字,例如 2.24.0
其中每一位數(shù)字所代表的的含義如下:

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

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

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

版本號(hào)提升的規(guī)則:只要前面的版本號(hào)增長(zhǎng)了,則后面的版本號(hào)歸零

包管理配置文件

npm 規(guī)定,在項(xiàng)目根目錄中,必須提供一個(gè)叫做 package.json 的包管理配置文件。用來記錄與項(xiàng)目有關(guān)的一些配置信息。例如:

  • 項(xiàng)目的名稱、版本號(hào)、描述

  • 項(xiàng)目中都用到了哪些包

  • 哪些包只在開發(fā)期間會(huì)用到

  • 那些包在開發(fā)部署時(shí)都需要用到

1. 多人協(xié)作問題

在這里先給大家舉一個(gè)例子:我們?cè)谶M(jìn)行多人項(xiàng)目開發(fā)時(shí)候,我們把自己寫的代碼交到碼云上,我
們總不能把node_modules安裝的依賴也提交上去啊,所以我們不把node_modules提交上去,因?yàn)榈谌侥K的所占的體積過大,經(jīng)常會(huì)出現(xiàn)我們的代碼總共才1M,第三方包都占30M,所以我們進(jìn)行剔除.

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

2. 如何記錄項(xiàng)目中安裝了哪些包

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

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

3. 快速創(chuàng)建 package.json

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

注意:
上述命令只能在英文的目錄下成功運(yùn)行!所以,項(xiàng)目文件夾的名稱一定要使用英文命名,不要使用中文,不能出現(xiàn)空格。
運(yùn)行 npm install 命令安裝包的時(shí)候,npm 包管理工具會(huì)自動(dòng)把包的名稱和版本號(hào),記錄到 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"   }}
登錄后復(fù)制

4. dependencies 節(jié)點(diǎn)

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

5. 一次性安裝所有的包

當(dāng)我們從gitee上拉下來一個(gè)項(xiàng)目代碼,里面是沒有node_modules,這就需要我們自己去安裝依賴,需要先把所有的包下載到項(xiàng)目中,才能將項(xiàng)目運(yùn)行起來。否則項(xiàng)目就不會(huì)跑起來!

那我們?cè)趺醋霾拍茏岉?xiàng)目跑起來呢?別著急,我們只需在終端中運(yùn)行npm install(npm i)就行了!這里運(yùn)行這個(gè)代碼的目的是一次性安裝我們需要的所有依賴!

6. 卸載包

可以運(yùn)行 npm uninstall 命令,來卸載指定的包,比如,我們需要卸載moment包,我們可以執(zhí)行代碼:npm uninstall moment
注意:
npm uninstall 命令執(zhí)行成功后,會(huì)把卸載的包,自動(dòng)從 package.json 的 dependencies 中移除掉

7. devDependencies 節(jié)點(diǎn)

如果某些包只在項(xiàng)目開發(fā)階段會(huì)用到,在項(xiàng)目上線之后不會(huì)用到,則建議把這些包記錄到 devDependencies 節(jié)點(diǎn)中。
與之對(duì)應(yīng)的,如果某些包在開發(fā)和項(xiàng)目上線之后都需要用到,則建議把這些包記錄到dependencies 節(jié)點(diǎn)中

你可以使用如下的命令,將包記錄到 devDependencies 節(jié)點(diǎn)中:

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

到這里,你就想問一個(gè)問題,那我怎么知道我安裝的這個(gè)包需不需要放在devDependencies呢?
一般情況下我們?nèi)pm網(wǎng)站中搜索你需要的包,它會(huì)提示你該包是否需要記錄到devDependencies中!

解決下包速度慢的問題

1. 為什么包下載速度慢

不難發(fā)現(xiàn),我們?cè)诎惭b包的時(shí)候它的速度也太慢了吧?為什么會(huì)發(fā)生這種情況呢?

因?yàn)椋涸谑褂?npm 下包的時(shí)候,默認(rèn)從國(guó)外的 https://registry.npmjs.org/ 服務(wù)器進(jìn)行下載,此時(shí),網(wǎng)絡(luò)數(shù)據(jù)的傳輸需要經(jīng)過漫長(zhǎng)的海底光纜,因此下包速度會(huì)很慢。

2. 淘寶npm鏡像服務(wù)器

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

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

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

3. 切換npm的下包鏡像源

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

  • 首先查看我們當(dāng)前的鏡像源:npm config get registry

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

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

4. nrm

我們?nèi)绻扇〕R?guī)的切換鏡像源的方法,未免有點(diǎn)繁瑣,為了更方便的切換下包的鏡像源,我們可以安裝 nrm 這個(gè)小工具,利用 nrm 提供的終端命令,可以快速查看和切換下包的鏡像源。

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

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

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

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

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

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

包的分類

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

1.項(xiàng)目包

那些被安裝到項(xiàng)目的 node_modules 目錄中的包,都是項(xiàng)目包

項(xiàng)目包又分為兩類,分別是:
開發(fā)依賴包(被記錄到 devDependencies 節(jié)點(diǎn)中的包,只在開發(fā)期間會(huì)用到)
核心依賴包(被記錄到 dependencies 節(jié)點(diǎn)中的包,在開發(fā)期間和項(xiàng)目上線之后都會(huì)用到)

2.全局包

在執(zhí)行 npm install 命令時(shí),如果提供了 -g 參數(shù),則會(huì)把包安裝為全局包。

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

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

注意:

  • 只有工具性質(zhì)的包,才有全局安裝的必要性。因?yàn)樗鼈兲峁┝撕糜玫慕K端命令。

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

3.將md文件轉(zhuǎn)為html

i5ting_toc 是一個(gè)可以把 md 文檔轉(zhuǎn)為 html 頁面的小工具(這個(gè)真的是嘎嘎好用,比如,如果我們?cè)诰W(wǎng)上找學(xué)習(xí)資源的時(shí)候,部分會(huì)把筆記記為md文檔,我們使用瀏覽器打開md文檔布局特別的難以接受~),使用步驟如下:

# 將 i5ting_toc 安裝為全局包 npm i -g i5ting_toc # 調(diào)用 i5ting_toc ,輕松實(shí)現(xiàn) md 轉(zhuǎn) html 的功能 i5ting_toc -f 要轉(zhuǎn)的md文件路徑 -o
登錄后復(fù)制

上述代碼中-o的意思是,我們將在默認(rèn)的瀏覽器中打開這個(gè)轉(zhuǎn)化后的md文件

規(guī)范的包結(jié)構(gòu)

在清楚了包的概念、以及如何下載和使用包之后,接下來,我們深入了解一下包的內(nèi)部結(jié)構(gòu)

一個(gè)規(guī)范的包,它的組成結(jié)構(gòu),必須符合以下 3 點(diǎn)要求

  • 包必須以單獨(dú)的目錄而存在

  • 包的頂級(jí)目錄下要必須包含 package.json 這個(gè)包管理配置文件

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

舉例:

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

小結(jié)

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

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲激情中文在线| 欧美日韩一区二区三区视频播放| 国产亚洲综合精品| 先锋影音国产一区| 亚洲综合小说| 欧美久久精品| 精品欧美日韩精品| 四虎4545www国产精品| 91精品蜜臀一区二区三区在线| 久久麻豆精品| 亚洲一级黄色| 亚洲欧美日韩一区在线观看| 日本一不卡视频| 国产亚洲欧美日韩精品一区二区三区 | 97精品一区二区| 日韩欧美1区| 91精品1区| 综合亚洲视频| 免费在线观看一区| 播放一区二区| 亚洲精选av| 国产精品videossex| 久久精品国产免费| 欧美日韩一区二区三区视频播放| 亚洲免费影院| 欧美日韩va| 中文在线中文资源| 美女尤物久久精品| 国产精品久久国产愉拍| 日韩高清成人| 中文字幕亚洲在线观看| 精品一区二区三区四区五区| 91精品一区国产高清在线gif| 六月天综合网| 麻豆91精品视频| 一区二区自拍| 国产精品久久久久久久久久齐齐| 国产精品原创| 蜜臀va亚洲va欧美va天堂| 久久精品一本| 亚洲一区二区动漫| 动漫av一区| 亚洲午夜国产成人| а√天堂中文在线资源8| 在线精品福利| 国产成人精品999在线观看| 尤物精品在线| 久久久国产精品网站| 一区在线视频观看| 你懂的亚洲视频| 亚洲欧美视频| 91免费精品| 婷婷成人av| 久久久成人网| 国产精品调教| 亚洲一区二区三区高清不卡| 牛牛精品成人免费视频| 宅男噜噜噜66国产日韩在线观看| 久久中文欧美| 亚洲九九精品| 亚洲无线一线二线三线区别av| 国产精品亚洲综合久久| 在线亚洲精品| 欧美gv在线| 国产精品永久| 日韩中文字幕不卡| 成人免费网站www网站高清| 奇米狠狠一区二区三区| 国内精品福利| 麻豆国产精品777777在线| 亚洲专区视频| 欧美在线资源| 人在线成免费视频| 老司机精品视频在线播放| 午夜久久av| 亚洲欧美网站| 美女久久久久| 成人日韩在线观看| 国产一区二区三区四区| 国产探花一区| 亚洲精品国产精品粉嫩| 欧美亚洲在线日韩| 麻豆久久久久久久| 日韩国产精品久久久久久亚洲| 欧美日韩视频| 国产 日韩 欧美一区| 国产精品1区在线| 日韩欧美2区| 视频一区在线视频| 黄色av一区| 999久久久国产精品| 精品99在线| 国产精品久久国产愉拍| 日本va欧美va瓶| 亚洲欧美日韩在线观看a三区| 中文字幕系列一区| 91精品xxx在线观看| 乱一区二区av| 欧美日韩一视频区二区| 日本亚洲欧洲无免费码在线| 日韩中文字幕区一区有砖一区 | 日韩综合在线| 欧美aⅴ一区二区三区视频| 日韩精品一区二区三区中文在线 | 国产精品66| 国产日产精品_国产精品毛片| 中文不卡在线| 麻豆91精品| 丝袜美腿亚洲一区二区图片| 亚洲一区亚洲| 美女精品在线| 亚洲综合色婷婷在线观看| 三级欧美韩日大片在线看| 午夜在线精品| 石原莉奈在线亚洲二区| 亚洲一区观看| 美女精品一区| 日韩精品一区第一页| 午夜在线视频一区二区区别 | 国产日韩欧美一区二区三区在线观看| 婷婷精品在线观看| 日韩av中文字幕一区二区| **爰片久久毛片| 国产精品99久久免费观看| 麻豆91在线播放| 福利片在线一区二区| 亚洲成人av观看| 国产一区观看| 亚洲综合精品四区| 亚洲毛片网站| 日本成人中文字幕| 国产一级成人av| 久久影院资源站| 伊人久久视频| 亚洲网站视频| 喷白浆一区二区| 欧美日韩一区二区国产| 精品欠久久久中文字幕加勒比| 超碰99在线| 婷婷亚洲五月色综合| 在线免费观看亚洲| 国产日韩欧美一区二区三区在线观看| 欧美aⅴ一区二区三区视频| 四虎国产精品免费观看| 91精品在线观看国产| 99精品99| 日韩av电影一区| 国内在线观看一区二区三区| 99精品在线| 亚洲精品乱码久久久久久蜜桃麻豆| 国产日本久久| 亚洲最新无码中文字幕久久| 好吊日精品视频| 日韩精品免费一区二区夜夜嗨| 欧美激情视频一区二区三区免费 | 欧美特黄一区| 青青草国产精品亚洲专区无| 国产精品二区影院| 秋霞影院一区二区三区| 亚洲一级大片| 久久精品国产99国产| 亚洲天堂久久| 97精品国产99久久久久久免费| 97精品国产福利一区二区三区| 中文欧美日韩| 久久不见久久见中文字幕免费 | jizzjizz中国精品麻豆| 亚洲激情国产| 日韩免费精品| 高潮一区二区| 亚洲精品系列| 九九精品调教| 欧美日韩国产一区精品一区| av在线最新| 国产精品嫩草99av在线| 国产精品一级| 91精品电影| 国产精品久久久免费| 欧美91视频| 国产精品成人**免费视频| 九一国产精品| 免费观看亚洲天堂| 亚洲视频播放| 国产精品黄色片| 婷婷激情综合| 国产精品黄色片| 在线综合视频| 成人午夜毛片| 亚洲精品麻豆| 91精品一区二区三区综合| 97久久超碰| 欧美日韩在线网站| 国产探花一区二区| 一区二区自拍| 色婷婷色综合| 国产亚洲一区二区三区啪| 激情综合网址| 国产一区丝袜| 婷婷综合福利| 欧美日韩国产高清电影|