最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js包管理工具(npm、yarn、cnpm)

 更新時(shí)間:2024年08月18日 10:06:03   作者:大富翁 chen  
本文主要介紹了Node.js包管理工具,包含npm、yarn、cnpm者三種,借助包管理工具,可以快速開發(fā)項(xiàng)目,提升開發(fā)效率,下面就來具體介紹一下如何使用,感興趣的可以了解一下

1. 概念介紹

包是什么?

『包』英文單詞是package,代表了一組特定功能的源碼集合

包管理工具

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

常用的包管理工具

  • npm
  • yarn
  • cnpm

2. npm

2.1 npm 下載

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

在這里插入圖片描述

2.2 npm 初始化包

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

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

{
  "name": "test",
  "version": "1.0.0",
  "description": "學(xué)習(xí)npm",
  "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的形式定義,必須是數(shù)字,默認(rèn)值是1.0.0
  • ISC證書與MT證書功能上是相同的,關(guān)于開源證書擴(kuò)展閱讀
  • package.json可以手動(dòng)創(chuàng)建與修改
  • 使用npm init -y或者npm init --yes極速創(chuàng)建package.json(文件夾名稱不包含大寫字母和漢字)

2.3 npm 包

(1) npm 搜索包

對(duì)于如何精準(zhǔn)找到需要的包,這就需要我們長期學(xué)習(xí),通過文章、項(xiàng)目去積累

(2) npm 下載安裝包

我們可以通過npm installnpm i命令安裝包
要確保是在聯(lián)網(wǎng)狀態(tài)下

#格式
npm install <包名>
npm i <包名>
#示例 比如我們要使用uniq 這個(gè)包給數(shù)組去重
npm install uniq
npm i uniq

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

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

如果出現(xiàn)錯(cuò)誤,可以試試給node.js 配置一下環(huán)境變量。

const uniq = require('uniq')
const array = [1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 2]

const result = uniq(array)

console.log(result)

// [ 1, 2, 3, 4, 5, 6 ]

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

(3) require 導(dǎo)入npm 包的基本流程

require 導(dǎo)入模塊的類型有三種:

  • 內(nèi)置模塊
  • 自定義模塊
  • npm 包

require 導(dǎo)入npm 包的基本流程:

  • 在當(dāng)前文件夾下node_modules中尋找同名的文件夾
  • 在上級(jí)目錄中下的node_modules中尋找同名的文件夾,直至找到磁盤根目錄
const uniq = require('uniq');
const uniq = require('./node_modules/uniq');
const uniq = require('./node_modules/uniq/uniq.js');

其實(shí)怕我們導(dǎo)入npm 包有以上三種方式,但是下面兩種方式的導(dǎo)入位置都太絕對(duì)了,一旦更換了node_modules 文件夾的位置就會(huì)出錯(cuò);所以一般我們會(huì)使用第一種導(dǎo)入方式。

2.4 開發(fā)依賴和生產(chǎn)依賴

首先來了解一下生產(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è)客戶都可以訪問

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

在這里插入圖片描述

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

2.5 npm 全局安裝

之前我們使用npm 包安裝方式都是局部安裝,也就是出了某個(gè)文件夾就沒辦法使用了;現(xiàn)在我們來學(xué)習(xí)一下npm 的全局安裝。

npm i -g nodemon

全局安裝完成之后就可以在命令行的任何位置運(yùn)行nodemon 命令

該命令的作用是自動(dòng)重啟node應(yīng)用程序也就是不像以前一樣修改文件后先暫停上次請(qǐng)求再重新啟動(dòng)文件了;有了這個(gè)包后,只要保存了文件再次刷新網(wǎng)頁,網(wǎng)頁內(nèi)容就會(huì)更新了。

說明:

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

(1) 修改windows 執(zhí)行策略

有些電腦在安裝nodemon 包是可能會(huì)出現(xiàn)問題,可能是windows 默認(rèn)不允許npm 全局執(zhí)行腳本文件,所以需要修改執(zhí)行策略。

請(qǐng)?zhí)砑訄D片描述

在這里插入圖片描述

在這里插入圖片描述

(2) 環(huán)境變量Path

命令行根目錄下如果有xxx.exe / xxx.cmd 的文件在,程序就會(huì)去執(zhí)行文件;
我們?nèi)绻渲媚硞€(gè)程序的環(huán)境變量,那么就可以在命令行窗口直接輸入程序名就可以打開程序。

如果遇到想要在命令行的任何位置都可以打開某個(gè)程序就可以為之配置環(huán)境變量。

2.6 安裝包依賴

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

npm i
npm install

node_modules文件夾大多數(shù)情況都不會(huì)存入版本/倉庫

在下載別人的代碼的時(shí)候文件夾中一般都是沒有node_modules 文件夾的,這樣我們的代碼可能就沒有辦法運(yùn)行,如果我們一個(gè)一個(gè)的安裝依賴效率很低,所以就可以使用npm i 安裝依賴,就可以啟動(dòng)項(xiàng)目了。

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)向上級(jí)目錄查找的特性,跟require函數(shù)也一樣
對(duì)于陌生的項(xiàng)目,我們可以通過查看scripts屬性來參考項(xiàng)目的一些操作

3. cnpm

3.1 cnpm 介紹與安裝

cnpm是一個(gè)淘寶構(gòu)建的npmjs.com的完整鏡像,也稱為 淘寶鏡像 ,網(wǎng)址https://npmmirror…com/cnpm服務(wù)部署在國內(nèi)阿里云服務(wù)器上,可以提高包的下載速度
官方也提供了一個(gè)全局工具包cnpm,操作命令與npm大體相同

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

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

3.2 操作命令

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

基本使用與npm 是一樣的。

4. npm 配置淘寶鏡像

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

  • 直接配置
  • 工具配置

4.1 直接配置

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

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

4.2 工具配置

使用nrm配置npm的鏡像地址npm registry manager決定npm 下載包的地址

安裝nrm

npm i -g nrm

修改鏡像

nrm use taobao

nrm 切換注冊(cè)地址 / 鏡像也很方便。

nrm ls

列出支持的鏡像地址

檢查是否配置成功 (選做)

npm config list

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

補(bǔ)充說明:
1.建議使用第二種方式進(jìn)行鏡像配置,因?yàn)楹罄m(xù)修改起來會(huì)比較方便
2.雖然cnpm可以提高速度,但是npm也可以通過淘寶鏡像進(jìn)行加速,所以npm的使用率還是高于cnpm

5. yarn

5.1 介紹

yarn是由Facebook在2016年推出的新的Javascript包管理工具,官方網(wǎng)址:https:/yarnpkg.com/

5.2 特點(diǎn)

yarm官方宣稱的一些特點(diǎn)

  • 速度超快:yarn 緩存了每個(gè)下載過的包,所以再次使用時(shí)無需重復(fù)下載。同時(shí)利用并行下載以最大化資源利用率,因此安裝速度更快
  • 超級(jí)安全:在執(zhí)行代碼之前,yarn 會(huì)通過算法校驗(yàn)每個(gè)安裝包的完整性
  • 超級(jí)可靠:使用詳細(xì)、簡潔的鎖文件格式和明確的安裝算法,yarn 能夠保證在不同系統(tǒng)上無差異的工作

我們可以使用npm安裝yarn

npm i -g yarn

5.3 yarn 常用命令

在這里插入圖片描述

5.4 yarn 配置淘寶鏡像

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

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

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

5.5 npm 和yarn 選擇

大家可以根據(jù)不同的場景進(jìn)行選擇
1.個(gè)人項(xiàng)目
如果是個(gè)人項(xiàng)目,哪個(gè)工具都可以,可以根據(jù)自己的喜好來選擇
2.公司項(xiàng)目
如果是公司要根據(jù)項(xiàng)目代碼來選擇,可以通過鎖文件判斷項(xiàng)目的包管理工具

  • npm的鎖文件為package-lock.json
  • yarm的鎖文件為yarn.lock

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

6. npm 發(fā)布一個(gè)包

目前了解即可,不太常用
我們可以將自己開發(fā)的工具包發(fā)布到npm服務(wù)上,方便自己和其他開發(fā)者使用,操作步驟如下:

  • 創(chuàng)建文件夾,并創(chuàng)建文件index.js,在文件中聲明函數(shù),使用module.exports暴露
  • npm初始化工具包,package.json填寫包的信息(包的名字是唯一的)
  • 注冊(cè)賬號(hào) https:/www.npmjs.com/signup
  • 激活賬號(hào)(一定要激活賬號(hào))
  • 修改為官方的官方鏡像(命令行中運(yùn)行nrm use npm)
  • 命令行下npm login填寫相關(guān)用戶信息
  • 命令行下npm publish提交包

更新包:

后續(xù)可以對(duì)自己發(fā)布的包進(jìn)行更新,操作步驟如下

  • 更新包中的代碼
  • 測試代碼是否可用
  • 修改package.json中的版本號(hào)
  • 發(fā)布更新
npm publish

刪除包:執(zhí)行如下命令刪除包

npm unpublish

刪除包需要滿足一定的條件,https::/docs.npmjs.com/policies/unpublish
你是包的作者
發(fā)布小于24小時(shí)
大于24小時(shí)后,沒有其他包依賴,并且每周小于300下載量,并且只有一個(gè)維護(hù)者

7. 擴(kuò)展內(nèi)容

在這里插入圖片描述

除了編程語言領(lǐng)域有包管理工具之外,操作系統(tǒng)層面也存在包管理工具,不過這個(gè)包指的是『軟件包』

在這里插入圖片描述

8. nvm 介紹和使用

nvm全稱Node Version Manager顧名思義它是用來管理node版本的工具,方便切換不同版本的Node.js

nvm的使用非常的簡單,跟npm的使用方法類似

常用命令:

在這里插入圖片描述

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

相關(guān)文章

  • Node.JS 循環(huán)遞歸復(fù)制文件夾目錄及其子文件夾下的所有文件

    Node.JS 循環(huán)遞歸復(fù)制文件夾目錄及其子文件夾下的所有文件

    在Node.js中,要實(shí)現(xiàn)目錄文件夾的循環(huán)遞歸復(fù)制也非常簡單,使用fs模塊即可,僅需幾行,而且性能也不錯(cuò),我們先來實(shí)現(xiàn)文件的復(fù)制,需要的朋友可以參考下
    2017-09-09
  • node版本與node-sass版本不兼容時(shí)的問題及解決

    node版本與node-sass版本不兼容時(shí)的問題及解決

    這篇文章主要介紹了node版本與node-sass版本不兼容時(shí)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vscode執(zhí)行npm時(shí)的一些錯(cuò)誤以及處理辦法

    vscode執(zhí)行npm時(shí)的一些錯(cuò)誤以及處理辦法

    在前端開發(fā)過程中,npm的使用是少不了的,所以需要知道基本的操作使用,并且了解常見的異常情況處理,下面這篇文章主要給大家介紹了關(guān)于vscode執(zhí)行npm時(shí)的一些錯(cuò)誤以及處理辦法的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • nodejs獲取表單數(shù)據(jù)的三種方法實(shí)例

    nodejs獲取表單數(shù)據(jù)的三種方法實(shí)例

    在開發(fā)中經(jīng)常需要獲取form表單的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于nodejs獲取表單數(shù)據(jù)的三種方法,方法分別是form表單傳遞、ajax請(qǐng)求傳遞以及表單序列化,需要的朋友可以參考下
    2021-06-06
  • node.js事件輪詢機(jī)制原理知識(shí)點(diǎn)

    node.js事件輪詢機(jī)制原理知識(shí)點(diǎn)

    在本篇文章里小編給大家分享的是一篇關(guān)于node.js事件輪詢機(jī)制的相關(guān)知識(shí)點(diǎn)文章,有興趣的朋友們可以參考下。
    2019-12-12
  • 配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解

    配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解

    這篇文章主要介紹了配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • 使用NVM管理Node.js多版本的方法

    使用NVM管理Node.js多版本的方法

    本文主要VM是一種Node版本管理工具,可以安裝和卸載多個(gè)多個(gè)的不同版本,NVM的N安裝和配置NVMDN安裝NodeD和NPMN全局NRM安裝和配置NPM源,文中詳細(xì)介紹了NVM的安裝步驟和配置方法,需要的朋友可以參考下
    2026-05-05
  • 如何刪除所有node_modules和package-lock配置文件

    如何刪除所有node_modules和package-lock配置文件

    這篇文章主要介紹了如何刪除所有node_modules和package-lock配置文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • nodejs操作mongodb的填刪改查模塊的制作及引入實(shí)例

    nodejs操作mongodb的填刪改查模塊的制作及引入實(shí)例

    下面小編就為大家分享一篇nodejs操作mongodb的填刪改查模塊的制作及引入實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 使用PM2實(shí)現(xiàn)高效的應(yīng)用監(jiān)控與管理功能

    使用PM2實(shí)現(xiàn)高效的應(yīng)用監(jiān)控與管理功能

    PM2?是一個(gè)流行的進(jìn)程管理器,用于?Node.js?應(yīng)用程序,它支持應(yīng)用程序的負(fù)載均衡、自動(dòng)重啟、日志管理、監(jiān)控以及多環(huán)境管理等功能,本文給大家介紹了如何使用PM2實(shí)現(xiàn)高效的應(yīng)用監(jiān)控與管理功能,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

清水县| 曲靖市| 洛扎县| 康平县| 桦甸市| 三穗县| 柘城县| 广平县| 松溪县| 浪卡子县| 东乡族自治县| 永嘉县| 县级市| 邳州市| 西平县| 永登县| 浪卡子县| 勃利县| 偃师市| 清新县| 宁晋县| 顺平县| 孙吴县| 土默特右旗| 稷山县| 嘉义县| 合作市| 崇文区| 交口县| 扎囊县| 普格县| 鹰潭市| 霍邱县| 精河县| 洪湖市| 额济纳旗| 临泽县| 罗山县| 韩城市| 滁州市| 裕民县|