国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

npm、yarn與pnpm詳解

這篇具有很好參考價(jià)值的文章主要介紹了npm、yarn與pnpm詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?? npm、yarn與pnpm詳解

?? 一、npm

npm、yarn與pnpm詳解,npm,前端,node.js,pnpm,yarn

?? 簡(jiǎn)介
npm是隨Node.js一起安裝的官方包管理工具,它為開發(fā)者搭建了一個(gè)龐大的資源庫(kù),允許他們?cè)谶@個(gè)平臺(tái)上搜索、安裝和管理項(xiàng)目所必需的各種代碼庫(kù)或模塊。

?? 常用命令

  • npm install:安裝package.json中聲明的所有依賴項(xiàng)。
  • npm install <package-name>:安裝指定名稱的包。
  • npm uninstall <package-name>:移除指定名稱的包。
  • npm update:更新所有已安裝包至最新版本。
  • npm update <package-name>:更新指定包至最新版本。
  • npm start:執(zhí)行package.json中的"start"腳本。

?? 特點(diǎn)
npm作為最早的JavaScript包管理器,坐擁龐大的社區(qū)和海量資源,盡管在處理大型項(xiàng)目時(shí)的安裝速度和性能上可能不如后起之秀Yarnpnpm理想。


?? 二、Yarn

npm、yarn與pnpm詳解,npm,前端,node.js,pnpm,yarn

?? 簡(jiǎn)介
Yarn是由Facebook開發(fā)的一款JavaScript包管理工具,旨在優(yōu)化npm的部分性能和安全性問題。

?? 常用命令

  • yarn install:安裝package.json中列舉的依賴。
  • yarn add <package-name>:添加指定名稱的包。
  • yarn remove <package-name>:刪除指定包。
  • yarn upgrade:全局更新所有包至最新版。
  • yarn upgrade <package-name>:更新指定包至最新版本。
  • yarn start:執(zhí)行package.json中的"start"腳本。

?? 特點(diǎn)
Yarn通過并行下載和緩存技術(shù)提升了安裝速度,增強(qiáng)了依賴關(guān)系的安全性保障。


?? 三、pnpm

npm、yarn與pnpm詳解,npm,前端,node.js,pnpm,yarn

?? 簡(jiǎn)介
pnpm是另一種廣受歡迎的JavaScript包管理器,其獨(dú)特之處在于采用了名為 硬鏈接 的安裝策略,從而極大地節(jié)省磁盤空間。

?? 常用命令

  • pnpm install:安裝package.json文件中列出的所有依賴項(xiàng)。
  • pnpm add <package-name>:安裝指定包。
  • pnpm remove <package-name>:卸載指定包。
  • pnpm upgrade:升級(jí)所有已安裝包至最新版本。
  • pnpm upgrade <package-name>:升級(jí)指定包至最新版本。
  • pnpm run <script-name>:執(zhí)行package.json中scripts字段下指定的腳本。

?? 特點(diǎn)
pnpm借助硬鏈接技術(shù),在保證與npmyarn命令集類似的同時(shí),大大提升了磁盤空間的使用效率。

?? 四、差異比較

  • 性能:相較于npmYarnpnpm在處理大型項(xiàng)目時(shí)通常表現(xiàn)出更快的安裝速度。
  • 磁盤空間pnpm通過硬鏈接技術(shù),相較于npmyarn能更有效地節(jié)約磁盤存儲(chǔ)空間。
  • 安全性Yarn因其嚴(yán)謹(jǐn)?shù)囊蕾嚱馕霾呗远灰曌鞅?code>npm更為安全的選擇。
  • 兼容性npm作為最早的包管理工具,擁有最為廣泛的支持和兼容性優(yōu)勢(shì)。

?? 五、深入了解

?? npm

工作原理npm的工作原理基于遞歸非循環(huán)依賴樹模型,每個(gè)項(xiàng)目都有一個(gè)node_modules目錄,其中包含了項(xiàng)目直接依賴和間接依賴的所有模塊。每次安裝新的包時(shí),npm會(huì)遍歷依賴樹并創(chuàng)建相應(yīng)的子目錄來存放每個(gè)依賴包。

緩存機(jī)制npm有本地緩存機(jī)制,用于加快重復(fù)安裝的速度,但它并不像Yarn那樣強(qiáng)制一致性的全局緩存。當(dāng)多個(gè)項(xiàng)目共享相同依賴時(shí),這些依賴可能會(huì)在每個(gè)項(xiàng)目的node_modules目錄下單獨(dú)復(fù)制一份。

鎖定文件npm從5.0版本開始引入了package-lock.json文件,用于鎖定安裝時(shí)的具體依賴版本,確??绛h(huán)境和團(tuán)隊(duì)成員間的依賴一致性。然而,在處理依賴樹時(shí),npm遵循的是扁平化原則,即盡可能地把所有依賴放在同一層級(jí),這可能導(dǎo)致在大型項(xiàng)目中node_modules目錄非常龐大。

?? Yarn

工作原理Yarn同樣遵循依賴樹模型,但在安裝過程中采用了一種更高效的方法。它不僅有一個(gè)全局緩存,而且在安裝新包時(shí),如果發(fā)現(xiàn)緩存中有匹配的包,則直接復(fù)用,而非重新下載。此外,Yarn同時(shí)處理多個(gè)依賴包的下載和安裝,顯著提高了安裝速度。

一致性保證Yarn通過yarn.lock文件實(shí)現(xiàn)嚴(yán)格的版本控制,這個(gè)文件精確記錄了每一個(gè)依賴包及其依賴鏈的具體版本,確保不同環(huán)境下項(xiàng)目構(gòu)建的一致性。Yarn在處理依賴時(shí)也采取扁平化策略,但在處理沖突時(shí)有更好的解決方案。

?? pnpm

工作原理pnpm創(chuàng)新性地使用了硬鏈接(hard link)和符號(hào)鏈接(symlink)技術(shù),這使得同一個(gè)依賴在磁盤上僅存儲(chǔ)一份,多個(gè)項(xiàng)目共用此唯一副本。這種機(jī)制通過store(存儲(chǔ))目錄集中管理所有的包版本,極大程度上減少了磁盤空間的占用。

高效的安裝與卸載pnpm在安裝時(shí)能夠識(shí)別出哪些包已經(jīng)存在于全局存儲(chǔ)中,并通過硬鏈接指向它們,而非復(fù)制文件。在卸載時(shí),由于沒有物理文件的移動(dòng),所以速度極快,同時(shí)避免了不必要的磁盤空間浪費(fèi)。

鎖定文件pnpm使用pnpm-lock.yaml文件鎖定依賴版本,該文件同樣提供了強(qiáng)大的版本控制能力。pnpm的獨(dú)特之處還在于它能更好地處理深層依賴場(chǎng)景,尤其是當(dāng)項(xiàng)目存在大量共享依賴時(shí),其帶來的性能提升尤為明顯。


??總結(jié)

特性/工具 npm Yarn pnpm
工作原理 遞歸地安裝所有依賴到node_modules目錄下 構(gòu)建扁平化的依賴樹并優(yōu)化安裝過程 使用單個(gè)全局存儲(chǔ)層和符號(hào)鏈接來減少磁盤空間占用
安裝方式 npm install yarn add/install pnpm install
緩存機(jī)制 本地緩存每個(gè)項(xiàng)目的依賴 共享緩存,保證多個(gè)項(xiàng)目間的依賴版本一致 共享存儲(chǔ)層緩存,避免重復(fù)下載
安裝速度 相對(duì)較慢,尤其在網(wǎng)絡(luò)不佳時(shí) 快于npm,支持并行安裝 更快,充分利用磁盤空間和網(wǎng)絡(luò)資源
磁盤空間占用 每個(gè)項(xiàng)目下的node_modules有完整副本,占用較多空間 同一依賴只在全局緩存一份 利用符號(hào)鏈接進(jìn)一步減少磁盤占用
鎖定文件 package-lock.json yarn.lock pnpm-lock.yaml
依賴一致性 通過package-lock.json實(shí)現(xiàn)一定的依賴版本控制 強(qiáng)制一致,每次安裝都會(huì)嚴(yán)格按照yarn.lock文件 同樣強(qiáng)制一致,基于pnpm-lock.yaml
離線模式 支持,但需先下載過相關(guān)包 提供強(qiáng)大的離線模式 也支持離線安裝
網(wǎng)絡(luò)策略 單線程請(qǐng)求 多線程并行請(qǐng)求 多線程并行請(qǐng)求,智能網(wǎng)絡(luò)調(diào)度
安全性 通過npm audit檢查依賴的安全性 同樣具有審計(jì)功能,檢查安全漏洞 支持安全審計(jì)
交互界面 提供基本的命令行交互 更友好的CLI,提供進(jìn)度條等反饋 CLI體驗(yàn)良好,同樣提供進(jìn)度顯示
生態(tài)系統(tǒng) 最大,兼容性最好 兼容npm的所有特性,并額外增強(qiáng)了一些功能 對(duì)npm生態(tài)完全兼容,但在大型項(xiàng)目中有更好表現(xiàn)
特色功能 npx,用于執(zhí)行一次性命令;npm ci用于快速、可靠的持續(xù)集成環(huán)境構(gòu)建 更加嚴(yán)格的版本控制,改進(jìn)的沖突解決策略;workspaces支持多包管理 針對(duì)monorepo設(shè)計(jì),高效的多包管理和tree shaking能力

以上表格涵蓋了這些包管理器的主要特性對(duì)比,實(shí)際使用中還可能涉及其他細(xì)節(jié)上的差異。

  • 性能?? Yarnpnpm在安裝速度方面優(yōu)于npm,尤其對(duì)于大型項(xiàng)目和頻繁安裝的情況。?? pnpm在磁盤空間占用上表現(xiàn)最佳。
  • 一致性?? 三者都支持依賴版本鎖定,但Yarnpnpm在這方面更為嚴(yán)格,能有效防止因依賴版本不一致引發(fā)的問題。
  • 生態(tài)?? npm擁有最大的生態(tài)系統(tǒng),但由于Yarnpnpm的高度兼容性,大多數(shù)npm包都可以無縫遷移到這兩個(gè)工具上。

在實(shí)際項(xiàng)目中,開發(fā)者可以根據(jù)項(xiàng)目的具體需求和團(tuán)隊(duì)偏好選擇合適的包管理器。對(duì)于小型項(xiàng)目或者初次接觸Node.js生態(tài)的新手,npm 可能是入門的最佳選擇;而對(duì)于需要高效管理大型項(xiàng)目和依賴的大團(tuán)隊(duì),Yarnpnpm 則可能帶來更高的效率和更好的資源管理效果。

npm、yarn與pnpm詳解,npm,前端,node.js,pnpm,yarn文章來源地址http://www.zghlxwxcb.cn/news/detail-857436.html

到了這里,關(guān)于npm、yarn與pnpm詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 包管理工具詳解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)

    包管理工具詳解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)

    Node Package Manager,也就是Node包管理器; 但是目前已經(jīng)不僅僅是Node包管理器了,在前端項(xiàng)目中我們也在使用它來管理依賴的包; 比如vue、vue-router、vuex、express、koa、react、react-dom、axios、babel、webpack等等; npm屬于node的一個(gè)管理工具,所以我們需要先安裝Node; node管理工具:

    2024年02月13日
    瀏覽(33)
  • 你真的知道 NPM、Yarn 與 PNPM 這三個(gè)前端包管理器之間的區(qū)別嗎?

    你真的知道 NPM、Yarn 與 PNPM 這三個(gè)前端包管理器之間的區(qū)別嗎?

    在當(dāng)代的Web開發(fā)過程中,JavaScript項(xiàng)目的構(gòu)建離不開各種外部依賴,無論是實(shí)用的庫(kù)、輔助工具還是其他類型的資源。這些依賴項(xiàng)的管理,已經(jīng)成為了開發(fā)者日常不可或缺的一部分。NPM、Yarn和PNPM這三個(gè)包管理器,就像是開發(fā)者的得力助手,它們?cè)陧?xiàng)目開發(fā)中扮演著至關(guān)重要的

    2024年04月13日
    瀏覽(23)
  • 包管理工具 nvm npm nrm yarn cnpm npx pnpm詳解

    包管理工具 nvm npm nrm yarn cnpm npx pnpm詳解

    npm、cnpm、yarn、pnpm、npx、nvm的區(qū)別:https://blog.csdn.net/weixin_53791978/article/details/122533843 npm、cnpm、yarn、pnpm、npx、nvm的區(qū)別:https://blog.csdn.net/weixin_53791978/article/details/122533843 包管理工具:npm、npx、yarn、cnpm、pnpm:https://blog.csdn.net/March_Q__/article/details/126675476 包管理工具詳解npm 、

    2024年02月12日
    瀏覽(60)
  • 包管理工具那么多,怎么選?npm、yarn 和 pnpm 三者比較及使用詳解!

    在 Vue 項(xiàng)目中,我們需要使用許多第三方依賴庫(kù),如 Vue Router、Vuex、Axios、Element UI 等等。這些依賴庫(kù)通常以 NPM 包的形式提供,而且在使用時(shí)需要進(jìn)行版本管理。因此,我們需要使用一個(gè)包管理工具來統(tǒng)一管理這些依賴庫(kù),避免版本沖突和管理繁瑣。 常見的 Vue 項(xiàng)目包管理工

    2024年02月07日
    瀏覽(116)
  • 前端npm, yarn, pnpm下載速度太慢,設(shè)置國(guó)內(nèi)鏡像源的幾種方式,讓其速度飛起來

    ?一、說明 在前端開發(fā)的時(shí)候使用國(guó)外的鏡像源速度很慢并且容易下載失敗,有時(shí)候需要嘗試多次才有可能下載成功,很麻煩,因此可以切換為國(guó)內(nèi)鏡像源,下面為常用的npm,yarn,pnpm切換國(guó)內(nèi)鏡像源(以淘寶為例)的方式。 ?二、NPM切換鏡像源 1. 查看當(dāng)前的鏡像源。 ``` npm c

    2024年02月10日
    瀏覽(29)
  • 前端環(huán)境的安裝 Node npm yarn

    前端環(huán)境的安裝 Node npm yarn

    1.下載NodeJS安裝包 下載地址:Download | Node.js 2.開始安裝 打開安裝包后,一直Next即可。當(dāng)然,建議還是修改一下安裝位置,NodeJS默認(rèn)安裝位置為? C:Program Files 3.驗(yàn)證是否安裝成功 打開DOS命令界面: node -v ? 出現(xiàn)NodeJS版本即為安裝成功! npm -v ? ?出現(xiàn)npm的版本號(hào)說明npm工具也

    2024年02月06日
    瀏覽(41)
  • nvm, node.js, npm, yarn 安裝配置

    nvm, node.js, npm, yarn 安裝配置

    nvm 是一個(gè) node.js 管理工具,可以快捷下載安裝使用多個(gè)版本的node.js linux 命令行輸入: 卸載: 刪除 ~/.bashrc 文件中的 windows 點(diǎn)擊 github 鏈接 windows-releases, 下載下方紅框中的exe文件安裝即可 卸載找到安裝目錄中的uninstall文件即可 node.js 是 js 文件的運(yùn)行環(huán)境 linux windows npm, yarn

    2024年01月20日
    瀏覽(55)
  • npm、yarn、pnpm

    一、簡(jiǎn)介 CommonJS 的出現(xiàn),使 node 環(huán)境下的 JS 代碼可以用模塊更加細(xì)粒度的劃分。一個(gè)類、一個(gè)函數(shù)、一個(gè)對(duì)象、一個(gè)配置等等均可以作為模塊,這種細(xì)粒度的劃分,是開發(fā)大型應(yīng)用的基石。 為了解決在開發(fā)過程中遇到的常見問題,比如加密、提供常見的工具方法、模擬數(shù)據(jù)

    2024年02月10日
    瀏覽(42)
  • Pnpm,npm,yarn

    npm ? 最初的npm只是簡(jiǎn)單的通過依賴去遞歸安裝包,所以說每個(gè)依賴都會(huì)有自己的node_modules,node_modules是嵌套的。一個(gè)項(xiàng)目會(huì)存在多個(gè)包,多個(gè)包之間難免會(huì)有公共的依賴,node_modules嵌套的話,這樣公共依賴就會(huì)下載多次。會(huì)造成磁盤空間的浪費(fèi),較長(zhǎng)的下載時(shí)間,文件路徑過

    2024年02月09日
    瀏覽(36)
  • 前端環(huán)境安裝【mac/window,nvm,node,npm,yarn,react】

    目錄 nvm:node版本管理器 安裝 window mac 常見命令 Node、npm yarn React a.全局方式 b.臨時(shí)方式 運(yùn)行 nvm 主要是用來管理?nodejs?和 npm 版本的工具,可以用來切換不同版本的 nodejs。 安裝nvm之前先卸載node Mac徹底卸載node Windows系統(tǒng)完全卸載刪除 Node.js_卸載nodejs命令-CSDN博客z window mac n

    2024年01月18日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包