欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NodeJs 包管理工具的使用

 更新時(shí)間:2023年10月10日 14:53:54   作者:這個(gè)程序猿有點(diǎn)迷  
本文主要介紹了NodeJs 包管理工具,主要包括npm,cnpm及yarn,具有一定的參考價(jià)值,感興趣的可以了解一下

1. 包管理工具概念介紹

1-1.包是什么

對于許多開發(fā)人員和程序員來說,Node.js是一種非常重要的技術(shù)。Node.js是一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行時(shí)環(huán)境,它允許開發(fā)人員使用JavaScript編寫服務(wù)器端代碼。Node.js附帶了一個(gè)強(qiáng)大的包管理器——npm,使開發(fā)人員能夠輕松地使用和共享模塊和庫。

在Node.js中,包(Packages)是可以用來擴(kuò)展功能的軟件模塊。它們由NPM進(jìn)行管理,通過包管理器可以方便地安裝、更新和卸載包。Node.js的包生態(tài)系統(tǒng)非常龐大且活躍,擁有眾多的開源包可供使用。這些包可以提供各種功能,例如網(wǎng)絡(luò)開發(fā)、數(shù)據(jù)庫訪問、身份驗(yàn)證等等。

因此,可以說Node.js中的包對于開發(fā)人員來說是非常重要的,它們?yōu)殚_發(fā)者提供了豐富的工具和資源,極大地簡化了開發(fā)過程,提高了效率。但請注意,包本身并不是生命,而是一種技術(shù)工具和資源。

1-2.包管理工具

管理『包』的應(yīng)用軟件,可以對「包」進(jìn)行 下載安裝 , 更新 , 刪除 , 上傳 等操作
借助包管理工具,可以快速開發(fā)項(xiàng)目,提升開發(fā)效率
包管理工具是一個(gè)通用的概念,很多編程語言都有包管理工具,所以 掌握好包管理工具非常重要

1-3. 常用的包管理工具

Node.js常用的包管理工具是npm(Node Package Manager)。npm是隨同Node.js安裝的默認(rèn)包管理器,它使開發(fā)者可以方便地查找、安裝、更新和刪除Node.js模塊。除了npm,還有一些其他流行的包管理工具,如Yarn和pnpm,它們也可用于管理Node.js模塊。

2.npm

npm 全稱 Node Package Manager ,翻譯為中文意思是『Node 的包管理工具』
npm 是 node.js 官方內(nèi)置的包管理工具,是 必須要掌握住的工具

2-1.npm的安裝

node.js在安裝時(shí)會(huì)自動(dòng)安裝npm , 所以如果你已經(jīng)安裝了node.js,可以直接使用npm
可以通過 npm -v 查看版本號(hào)測試,如果顯示版本號(hào)說明安裝成功,反之安裝失敗

image.png

查看版本時(shí)可能與上圖版本號(hào)不一樣,不過不影響正常使用

2-2.npm基本使用

2-2-1.初始化

創(chuàng)建一個(gè)空目錄,然后以此目錄為工作目錄 啟動(dòng)命令行工具 ,執(zhí)行 npm init

image.png

npm init 命令的作用是將文件夾初始化為一個(gè)『包』, 交互式創(chuàng)建 package.json 文件

package.json 是包的配置文件,每個(gè)包都必須要有 package.json

package.json 內(nèi)容示例:

{
	"name": "01_npm",
	"version": "1.0.0",
	"description": "",
	"main": "index.js",
	"scripts": {
	"test": "echo \"Error: no test specified\" && exit 1"
	},
	"author": "",
	"license": "ISC"
}

屬性翻譯

{
	"name": "01_npm",    # 包的名字
	"version": "1.0.0",  # 包的版本
	"description": "",   # 包的描述
	"main": "index.js",  # 包的入口文件
	"scripts": {		 # 腳本配置
	"test": "echo \"Error: no test specified\" && exit 1"
	},
	"author": "",		# 作者
	"license": "ISC"    # 開源證書
}

初始化的過程中還有一些注意事項(xiàng):

  • package name ( 包名 ) 不能使用中文、大寫,默認(rèn)值是 文件夾的名稱 ,所以文件夾名稱也不 能使用中文和大寫
  • version ( 版本號(hào) )要求 x.x.x 的形式定義, x 必須是數(shù)字,默認(rèn)值是 1.0.0
  • ISC 證書與 MIT 證書功能上是相同的,關(guān)于開源證書擴(kuò)展閱讀http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
  • package.json 可以手動(dòng)創(chuàng)建與修改
  • 使用 npm init -y 或者 npm init --yes 極速創(chuàng)建 package.json

2-2-2.搜索包

搜索包的方式有兩種

2-2-3.下載安裝包

我們可以通過 npm install 和 npm i 命令安裝包

# 格式
npm install <包名>
npm i <包名>
# 示例
npm install uniq
npm i uniq

運(yùn)行之后文件夾下會(huì)增加兩個(gè)資源

  • node_modules 文件夾 存放下載的包
  • package-lock.json 包的鎖文件 ,用來鎖定包的版本

安裝 uniq 之后, uniq 就是當(dāng)前這個(gè)包的一個(gè)依賴包,有時(shí)會(huì)簡稱為 依賴比如我們創(chuàng)建一個(gè)包名字為 A,A 中安裝了包名字是B,我們就說 B 是 A 的一個(gè)依賴包 ,也會(huì)說 A 依賴 B

2-2-4. require 導(dǎo)入 npm 包基本流程

  • 在當(dāng)前文件夾下 node_modules 中尋找同名的文件夾
  • 在上級目錄中下的 node_modules 中尋找同名的文件夾,直至找到磁盤根目錄

2-3. 生產(chǎn)環(huán)境與開發(fā)環(huán)境

開發(fā)環(huán)境是程序員 專門用來寫代碼 的環(huán)境,一般是指程序員的電腦,開發(fā)環(huán)境的項(xiàng)目一般 只能程序員自己訪問

生產(chǎn)環(huán)境是項(xiàng)目 代碼正式運(yùn)行 的環(huán)境,一般是指正式的服務(wù)器電腦,生產(chǎn)環(huán)境的項(xiàng)目一般 每個(gè)客戶都可以訪問

2-4.生產(chǎn)依賴與開發(fā)依賴

我們可以在安裝時(shí)設(shè)置選項(xiàng)來區(qū)分 依賴的類型 ,目前分為兩類:

類型命令補(bǔ)充
生產(chǎn)依賴npm i -S uniq
npm i --save uniq
-S 等效于 --save, -S 是默認(rèn)選項(xiàng)
包信息保存在 package.json 中 dependencies 屬性
生產(chǎn)依賴npm i -D less
npm i --save-dev less
-D 等效于 --save-dev
包信息保存在 package.json 中 devDependencies 屬性

舉個(gè)例子方便大家理解,比如說做蛋炒飯需要 大米 , 油 , 蔥 , 雞蛋 , 鍋 , 煤氣 , 鏟子 等
其中 鍋 , 煤氣 , 鏟子 屬于開發(fā)依賴,只在制作階段使用
而 大米 , 油 , 蔥 , 雞蛋 屬于生產(chǎn)依賴,在制作與最終食用都會(huì)用到
所以 開發(fā)依賴 是只在開發(fā)階段使用的依賴包,而 生產(chǎn)依賴 是開發(fā)階段和最終上線運(yùn)行階段都用到 的依賴包

2-5.全局安裝

我們可以執(zhí)行安裝選項(xiàng) -g 進(jìn)行全局安裝

npm i -g nodemon

全局安裝完成之后就可以在命令行的任何位置運(yùn)行 nodemon 命令
該命令的作用是 自動(dòng)重啟 node 應(yīng)用程序

說明:

  • 全局安裝的命令不受工作目錄位置影響
  • 可以通過 npm root -g 可以查看全局安裝包的位置
  • 不是所有的包都適合全局安裝 , 只有全局類的工具才適合,可以通過 查看包的官方文檔來確定
  • 安裝方式 ,這里先不必太糾結(jié)

2-5-1.修改 windows 執(zhí)行策略

image.png

windows 默認(rèn)不允許 npm 全局命令執(zhí)行腳本文件,所以需要修改執(zhí)行策略

  • 以 管理員身份 打開 powershell 命令行

    image.png

  • 鍵入命令 set-ExecutionPolicy remoteSigned

    image.png

  • 鍵入 A 然后敲回車 ??
  • 如果不生效,可以嘗試重啟 vscode

2-6.安裝包依賴

在項(xiàng)目協(xié)作中有一個(gè)常用的命令就是 npm i ,通過該命令可以依據(jù) package.json 和 package-lock.json 的依賴聲明安裝項(xiàng)目依賴

npm i
npm install

2-7. 安裝指定版本的包

項(xiàng)目中可能會(huì)遇到版本不匹配的情況,有時(shí)就需要安裝指定版本的包,可以使用下面的命令的

## 格式
npm i <包名@版本號(hào)>
## 示例
npm i jquery@1.11.2

2-8. 刪除依賴

項(xiàng)目中可能需要?jiǎng)h除某些不需要的包,可以使用下面的命令

## 局部刪除
npm remove uniq
npm r uniq
## 全局刪除
npm remove -g nodemon

2.9 配置命令別名

通過配置命令別名可以更簡單的執(zhí)行命令
配置 package.json 中的 scripts 屬性

{
.
.
.
"scripts": {
"server": "node server.js",
"start": "node index.js",
},
.
.
}

配置完成之后,可以使用別名執(zhí)行命令

npm run server
npm run start

不過 start 別名比較特別,使用時(shí)可以省略 run

npm start

補(bǔ)充說明:

  • npm start 是項(xiàng)目中常用的一個(gè)命令,一般用來啟動(dòng)項(xiàng)目
  • npm run 有自動(dòng)向上級目錄查找的特性,跟 require 函數(shù)也一樣
  • 對于陌生的項(xiàng)目,我們可以通過查看 scripts 屬性來參考項(xiàng)目的一些操作

3. cnpm

3-1.cnpm介紹

cnpm是一款基于Node.js的包管理工具,它是npm(Node Package Manager)的一個(gè)國內(nèi)鏡像源。由于某些原因,訪問npm的服務(wù)器可能會(huì)受到限制,cnpm則提供了一個(gè)在中國境內(nèi)更快、更穩(wěn)定的下載環(huán)境。

使用cnpm,開發(fā)者可以方便地安裝、發(fā)布以及管理Node.js的各種模塊和軟件包。它提供了與npm相同的命令行接口和功能,可以在大多數(shù)場景下直接替代npm使用。

cnpm的優(yōu)勢在于它的鏡像源位于中國大陸,減少了國際網(wǎng)絡(luò)傳輸?shù)难舆t,使得安裝和更新依賴更加高效。此外,cnpm還提供了一些額外的特性,例如支持私有模塊的管理和加速,以及通過淘寶鏡像下載模塊的機(jī)制。

需要注意的是,盡管cnpm在國內(nèi)使用廣泛,但它仍然是一個(gè)第三方工具,使用時(shí)需謹(jǐn)慎選擇可信的鏡像源,并確保代碼的安全性和可靠性。

3-2.安裝

我們可以通過 npm 來安裝 cnpm 工具

npm install -g cnpm --registry=https://registry.npmmirror.com

3-3.操作命令

功能命令
初始化cnpm init / cnpm init
安裝包cnpm i uniq
cnpm i -S uniq
cnpm i -D uniq
cnpm i -g nodemon
安裝項(xiàng)目依賴cnpm i
刪除cnpm r uniq

3-4.npm 配置淘寶鏡像

用 npm 也可以使用淘寶鏡像,配置的方式有兩種

  • 直接配置
  • 工具配置

3-4-1.直接配置

執(zhí)行如下命令即可完成配置

npm config set registry https://registry.npmmirror.com/

3-4-2.工具配置

使用 nrm 配置 npm 的鏡像地址 npm registry manager

  • 安裝 nrm

    npm i -g nrm
  • 修改鏡像

    nrm use taobao
  • 檢查是否配置成功(選做)

    npm config list

檢查 registry 地址是否為 https://registry.npmmirror.com/ , 如果 是 則表明成功

4. yarn

image.png

4-1.yarn 介紹

Yarn 是一個(gè)用于管理 JavaScript 項(xiàng)目依賴關(guān)系的包管理器。它是由 Facebook 創(chuàng)建并開源的,旨在解決 npm 包管理器性能和安全性方面的一些問題.

4-2.yarn 特點(diǎn)

  • 提高了安裝速度:Yarn 使用并行安裝的方法,可以更快地下載和安裝依賴包。
  • 離線模式支持:當(dāng)你已經(jīng)安裝了所有依賴包后,即使沒有網(wǎng)絡(luò)連接,你仍然可以構(gòu)建項(xiàng)目。
  • 更好的版本控制:Yarn 使用鎖文件(yarn.lock)確保多人開發(fā)環(huán)境下使用相同的依賴版本,避免了出現(xiàn)不可預(yù)期的依賴沖突。
  • 更強(qiáng)的安全性:Yarn 使用 checksums 來驗(yàn)證每個(gè)安裝包的完整性,防止被篡改或污染。
  • 更簡潔的輸出:Yarn 的命令行界面與 npm 相比更簡潔易讀。

4-3. yarn 安裝

我們可以使用 npm 安裝 yarn

npm i -g yarn

4-4.yarn 常用命令

功能命令
初始化yarn init / yarn init -y
安裝包yarn add uniq 生產(chǎn)依賴
yarn add less --dev 開發(fā)依賴
yarn global add nodemon 全局安裝
刪除包yarn remove uniq 刪除項(xiàng)目依賴包
yarn global remove nodemon 全局刪除包
安裝項(xiàng)目依賴yarn
運(yùn)行命令別名yarn <別名> # 不需要添加 run

4-5. yarn 配置淘寶鏡像

可以通過如下命令配置淘寶鏡像

yarn config set registry https://registry.npmmirror.com/

可以通過 yarn config list 查看 yarn 的配置項(xiàng)

4-6. npm 和 yarn 選擇

大家可以根據(jù)不同的場景進(jìn)行選擇

  • 個(gè)人項(xiàng)目
    如果是個(gè)人項(xiàng)目, 哪個(gè)工具都可以 ,可以根據(jù)自己的喜好來選擇
  • 公司項(xiàng)目
    如果是公司要根據(jù)項(xiàng)目代碼來選擇,可以 通過鎖文件判斷 項(xiàng)目的包管理工具
    • npm 的鎖文件為 package-lock.json
    • yarn 的鎖文件為 yarn.lock

包管理工具 不要混著用,切記,切記,切記

到此這篇關(guān)于NodeJs 包管理工具的使用的文章就介紹到這了,更多相關(guān)NodeJs 包管理工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js實(shí)現(xiàn)簡單管理系統(tǒng)

    Node.js實(shí)現(xiàn)簡單管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Node.js實(shí)現(xiàn)簡單管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Express的HTTP重定向到HTTPS的方法

    Express的HTTP重定向到HTTPS的方法

    本篇文章主要介紹了Express的HTTP重定向到HTTPS的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • node通過npm寫一個(gè)cli命令行工具

    node通過npm寫一個(gè)cli命令行工具

    本篇文章主要介紹了node通過npm寫一個(gè)cli命令行工具 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 在Ubuntu系統(tǒng)上安裝Ghost博客平臺(tái)的教程

    在Ubuntu系統(tǒng)上安裝Ghost博客平臺(tái)的教程

    這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Ghost博客平臺(tái)的教程,Ghost博客平臺(tái)以Node.js寫成,需要的朋友可以參考下
    2015-06-06
  • Node.js Event Loop各階段講解

    Node.js Event Loop各階段講解

    今天小編就為大家分享一篇關(guān)于Node.js Event Loop各階段講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 使用NVM實(shí)現(xiàn)不同nodejs版本的自由切換

    使用NVM實(shí)現(xiàn)不同nodejs版本的自由切換

    在工作中,我們可能需要同時(shí)進(jìn)行多個(gè)不同NodeJS版本的項(xiàng)目開發(fā),這種情況下,對于維護(hù)多個(gè)版本的node將會(huì)是一件非常麻煩的事情,NVM就是為解決這個(gè)問題而產(chǎn)生的,本文給出了下載、安裝及使用方法,需要的朋友可以參考下
    2024-02-02
  • node前端模板引擎Jade之標(biāo)簽的基本寫法

    node前端模板引擎Jade之標(biāo)簽的基本寫法

    這篇文章主要介紹了node前端模板引擎Jade之標(biāo)簽的基本寫法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • node.js使用express-jwt報(bào)錯(cuò):expressJWT?is?not?a?function解決

    node.js使用express-jwt報(bào)錯(cuò):expressJWT?is?not?a?function解決

    這篇文章主要給大家介紹了關(guān)于node.js使用express-jwt報(bào)錯(cuò):expressJWT?is?not?a?function解決的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-03-03
  • npm?install?-g?@vue/cli常見問題解決匯總

    npm?install?-g?@vue/cli常見問題解決匯總

    這篇文章主要給大家介紹了關(guān)于npm?install?-g?@vue/cli常見問題解決的相關(guān)資料,文中通過實(shí)例代碼將解決的方式介紹的非常詳細(xì),對遇到這個(gè)問題的朋友具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Node.js?實(shí)現(xiàn)簡單爬蟲的示例代碼

    Node.js?實(shí)現(xiàn)簡單爬蟲的示例代碼

    本文主要介紹了Node.js?實(shí)現(xiàn)簡單爬蟲,爬取美食網(wǎng)站的菜品標(biāo)題和圖片鏈接,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02

最新評論