自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么您可能想要使用不止一個Node軟件包管理器?

譯文
開發(fā) 前端
本文解釋了為何使用多個Node軟件包管理器是個好主意。

譯者 | 布加迪

審校 | 孫淑娟?

Node最好的特性之一是軟件包管理器。有許多不同的方法來安裝和管理Node軟件包,本文介紹使用一個或多個軟件包管理器各自的優(yōu)缺點,以及結(jié)合使用軟件包管理器的幾個最佳方法。?

軟件包管理器簡介

在軟件開發(fā)領(lǐng)域,依賴是運行項目所需的,它們如同食譜配料一樣不可或缺。

假設(shè)您在編寫一個使用JavaScript的應(yīng)用程序,它想要訪問來自jQuery許多網(wǎng)站曾經(jīng)使用jQuery庫)的一些函數(shù),那么jQuery將是的依賴項之一。您需要安裝jQuery,這樣有人訪問您的網(wǎng)站時,可以看到您用它創(chuàng)建的那些很酷的動畫或交互元素!

軟件包管理器通過為我們管理依賴來幫助管理這些項目之間的關(guān)系,所以每當(dāng)我們想要添加或更新內(nèi)容時,不必自己手動下載而操心,它們還確保在安裝后一切都能正常工作、順暢運行(這有時說起來容易做起來難?

Node預(yù)裝軟件包管理器NPM

NPM是默認(rèn)的軟件包管理器,因此它被內(nèi)置到Node運行時環(huán)境中。您可以使用NPM直接從GitHub網(wǎng)站NPM安裝軟件包,也可以將您的軟件包發(fā)布到這個網(wǎng)站,這樣其他人就可以使用自己版本的NPM來安裝它們。?

NPM不僅僅用于安裝軟件,可以處理應(yīng)用程序代碼庫中兩個或多個所需庫或模塊之間的依賴項解析和版本沖突。?

這意味著,如果在您的服務(wù)器上隨時Express之類的多個版本在運行,NPM將確保每個實例得到所需的東西,不會與從事類似任務(wù)的其他實例發(fā)生沖突,而且根本不需要您采取任何特殊的操作,只需要在需要時對對象調(diào)用require() !?

NPM一種功能很強大的工具,很容易上手。但是如果您剛接觸NodeJavaScript,了解哪些工具可供使用以及哪些工具最適合某個項目可能具有挑戰(zhàn)性。?

NPM的主要問題是,軟件包安裝起來很慢。如果您只是運行一兩個偶爾的腳本,這不是大問題,但如果您試圖構(gòu)建一個使用數(shù)十個不同庫和工具的完整應(yīng)用程序,這可能會備感沮喪。?

Yarn和PNPM比NPM更快

Yarn可以替代NPM一種安全可靠的方案,它使用鎖文件來防止意外覆蓋,并確保在安裝軟件包時正確解析依賴項。?

安裝起來也比NPM快,如果您處理的大型項目涉及擁有眾多依賴項的許多模塊,這點尤其有用。?

PNPMYarnNPM替代者,但它的人氣還不是很旺,因為它沒有其中任何一個的一些功能比如鎖文件。然而開發(fā)人員聲稱,由于具有輕量級特性PNPM安裝軟件包的速度比YarnNPM快四倍,意味著您的計算機上少占用磁盤空間!?

如果您在構(gòu)建的項目只需要少量依賴項,那么YarnNPM可能就足夠了。但是如果您處理的大型項目涉及許多模塊和依賴項,那么PNPM可能是更好的選擇。?

使用多個軟件包管理器的優(yōu)點

一個軟件包管理器一次只能處理任何某個庫的一個版本。如果您希望其他項目或不同的環(huán)境(比如生產(chǎn)環(huán)境開發(fā)環(huán)境使用同一庫的兩個不同版本,那么需要在系統(tǒng)上安裝兩個單獨的軟件包。

如果兩個軟件包同時試圖更新相同依賴項的版本,可能導(dǎo)致沖突。使用多個軟件包管理器意味著您可以更好地控制安裝哪些依賴項以及安裝位置,這有助于避免此類沖突。?

另一個好處是,使用多個軟件包管理器時,每個軟件包管理器都將提供各自獨特的功能特性。一些軟件包管理器可能更快,一些可能擁有更好的依賴管理功能,另一些則可能更適合使用某些框架(比如ReactJS或VueJS開發(fā)應(yīng)用程序。?

最后,使用多個軟件包管理器可以減少搜索和安裝依賴項所花費的時間,從而幫助提高開發(fā)人員的工作效率這是由于每個軟件包管理器設(shè)計時考慮到針對一組特定的用例(比如側(cè)重速度、安全或依賴項管理等方面)。?

通過全局安裝,使用多個軟件包管理器

使用命令行,您可以指定要為特定項目使用哪個軟件包管理器。在系統(tǒng)安裝多個軟件包管理器?

  • Node預(yù)裝有NPM。這將允許您從命令行安裝其他軟件包軟件包管理器,并使用NPM管理所有項目的依賴。如果您想在Webpack瀏覽器運行NPM腳本,它也很有幫助,因為瀏覽器并不預(yù)裝NPM ?
  • 使用NPM全局安裝Yarn。這是管理JavaScript項目中依賴的另一個常見方法,較之NPM具有幾個優(yōu)點,可能使它更適合某些類型的項目或團隊。?
  • 最后安裝PNPM。軟件包管理器是NPM的分支,旨在快速、更穩(wěn)定。它還有一些額外的功能,可能對某些類型的項目有用,比如支持來自GitHub的依賴。?

注意,全局安裝意味著所選擇的軟件包可供整個系統(tǒng)使用(您可以通過命令行在任何地方訪問程序,而本地安裝只能由當(dāng)前工作目錄訪問。?

使用多個軟件包管理器的實例

不妨看看這些用法?

1. Yarn和NPM可以一起使用(比如create-react-app?

如果您想要充分利用Yarn的速度和效率,同時仍與NPM軟件包保持兼容性,這種方法非常有用。如果您需要一個還沒有更新的庫的最新版本與Yarn兼容,或者如果您的團隊其他原因寧愿堅持使用NPM,盡管速度較慢或功能有限,那么這可能很適合您的項目。這種方法還有助于避免單一代碼庫(mono repo)環(huán)境中有兩棵獨立的依賴樹!?

2. 將Yarn用于全局軟件包,將PNPM用于本地安裝?

雖然PNPM是最快的軟件包管理器,但用于全局安裝的軟件包可能有些棘手。這是由于它使用不同的文件結(jié)構(gòu),可能會導(dǎo)致與Visual Studio Code等程序之間的兼容問題,這時候Yarn就有了用武之地??梢詫?/span>Yarn用于全局安裝的軟件包,將PNPM用于本地安裝。這個解決方案是集兩個軟件包管理器的優(yōu)點于一體的好方法,不必大幅改動工作流程。有了這種方案,您可以從系統(tǒng)中完全刪除NPM(擁有NPM這個備份始終好主意)。?

3.使用PNPM和NPM作為后備?

如果您想使用PNPM,又不想讓所有開發(fā)人員都得學(xué)習(xí)一種新工具,這是一種值得考慮的好選擇。它允許開發(fā)人員繼續(xù)使用NPM,直到他們熟悉PNPM需要它來完成工作。?

使用多個軟件包管理器讓事情變得更簡單

您可以使用多個軟件包管理器;可以在全局或本地安裝,如果您想指定哪個軟件包管理器應(yīng)該用于某個項目,只需使用命令行?

如果您想在系統(tǒng)上安裝多個軟件包管理器,確保使用的是同一版本的Node.js。?

總之,我們認(rèn)為您應(yīng)該使用多個軟件包管理器。如果您已經(jīng)熟悉NPM,這是開始上手Node和學(xué)習(xí)一些新工具的好方法。如果您還沒有安裝Node,在Windows上安裝其實很簡單。?

原文標(biāo)題:??Why You’ll Probably Want To Use More Than One Node Package Manager??,作者:Brian Walker

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2010-01-05 10:14:09

Ubuntu軟件包

2021-02-28 13:26:15

Linux軟件包管理器軟件倉庫

2010-01-06 16:33:24

Ubuntu軟件包

2010-02-05 14:46:20

Ubuntu軟件包

2020-06-01 07:00:00

WingetWindows 10軟件包管理器

2010-03-17 13:42:41

Fedora Core

2021-01-30 09:23:27

Windows操作系統(tǒng)微軟

2021-05-28 16:00:45

Windows操作系統(tǒng)微軟

2011-11-15 09:22:20

Solaris 11

2020-06-28 13:56:01

UbuntuAptSynaptic

2020-05-20 16:01:45

Windows 10軟件包管理器微軟

2021-11-11 11:13:20

js Npm基礎(chǔ)

2010-03-17 13:53:35

Fedora Core

2018-11-22 08:00:00

Linux軟件包管理器Nix

2020-06-15 19:20:00

AppImageLinux軟件包管理

2020-05-29 10:15:17

開發(fā)者微軟Windows

2021-04-25 18:41:17

Windows軟件包管理器微軟

2020-02-20 16:42:40

云端Kubernetes容器

2021-11-29 14:26:53

FreeDOSLinux

2010-01-11 17:49:08

Fedora軟件包
點贊
收藏

51CTO技術(shù)棧公眾號