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

npm、yarn、pnpm

這篇具有很好參考價值的文章主要介紹了npm、yarn、pnpm。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、簡介

CommonJS 的出現(xiàn),使 node 環(huán)境下的 JS 代碼可以用模塊更加細粒度的劃分。一個類、一個函數(shù)、一個對象、一個配置等等均可以作為模塊,這種細粒度的劃分,是開發(fā)大型應用的基石。

為了解決在開發(fā)過程中遇到的常見問題,比如加密、提供常見的工具方法、模擬數(shù)據(jù)等等,一時間,在前端社區(qū)涌現(xiàn)了大量的第三方庫。這些庫使用 CommonJS 標準書寫而成,非常容易使用。

這些庫通常以NPM包的形式提供依賴,而且在使用時需要進行版本管理。因此需要一個包管理庫來統(tǒng)一管理這些依賴庫,來避免版本沖突和管理繁瑣。

模塊(module):通常以單個文件形式存在的功能片段,入口文件通常稱之為入口模塊或主模塊。

庫(library,簡稱lib):以一個或多個模塊組成的完整功能塊,為開發(fā)中某一方面的問題提供完整的解決方案

包(package):包含元數(shù)據(jù)的庫,這些元數(shù)據(jù)包括:名稱、描述、git主頁、許可證協(xié)議、作者、依賴等等

常用的包管理工具包括:

NPM:NPM(Node Package Manager)是Node.js自帶的包管理工具,也是最常用的包管理工具之一??梢苑奖愕匕惭b、升級、卸載依賴包,還可以發(fā)布自己的包到NPM倉庫。

Yarn:Yarn是Facebook推出的包管理工具,具有速度快、緩存機制好等優(yōu)點。與NPM相比,Yarn可以更快地下載依賴包,并且支持離線模式。

PNPM:PNPM(Permissive NPM)是一款新興的包管理工具,采用了類似于軟連接的方式,將依賴包安裝到每個項目的 node_modules 目錄下,從而避免了大量的重復安裝。

二、NPM

目前所有的包管理器都是基于 npm 的,npm本身就是一個包管理器。

運行在 node 環(huán)境中,讓開發(fā)者可以用簡單的方式完成包的查找、安裝、更新、卸載、上傳等操作。

npm 由三部分組成:

registry:入口

可以把它想象成一個龐大的數(shù)據(jù)庫

第三方庫的開發(fā)者,將自己的庫按照 npm 的規(guī)范,打包上傳到數(shù)據(jù)庫中

使用者通過統(tǒng)一的地址下載第三方包

官網(wǎng):https://www.npmjs.com/

查詢包

注冊、登錄、管理個人信息

CLI:command-line interface 命令行接口

安裝好 npm 后,通過 CLI 來使用 npm 的各種功能

  1. 本地安裝:使用命令npm install 包名或npm i 包名即可完成本地安裝,本地安裝的包出現(xiàn)在當前目錄下的node_modules目錄中。

4.包配置:

(1)配置文件:npm將每個使用npm的工程本身都看作是一個包,包的信息通過一個名稱固定的配置文件來描述。

該文件為:package.json。

配置文件中可以描述大量的信息,包括:

name:包的名稱,該名稱必須是英文單詞字符,支持連接符

version:版本

版本規(guī)范:主版本號.次版本號.補丁版本號

主版本號:僅當程序發(fā)生了重大變化時才會增長,如新增了重要功能、新增了大量的API、技術架構發(fā)生了重大變化

次版本號:僅當程序發(fā)生了一些小變化時才會增長,如新增了一些小功能、新增了一些輔助型的API

補丁版本號:僅當解決了一些 bug 或 進行了一些局部優(yōu)化時更新,如修復了某個函數(shù)的 bug、提升了某個函數(shù)的運行效率

description:包的描述

homepage:官網(wǎng)地址

author:包的作者,必須是有效的 npm 賬戶名,書寫規(guī)范是 account ,例如:zhangsan zhangsan@gmail.com,不正確的賬號和郵箱可能導致發(fā)布包時失敗

repository:包的倉儲地址,通常指 git 或 svn 的地址,它是一個對象

type:倉儲類型,git 或 svn

url:地址

main:包的入口文件,使用包的人默認從該入口文件導入包的內(nèi)容

keywords: 搜索關鍵字,發(fā)布包后,可以通過該數(shù)組中的關鍵字搜索到包

(2)保存依賴關系

package.json文件最重要的作用,是記錄當前工程的依賴

dependencies:生產(chǎn)環(huán)境的依賴包

devDependencies:僅開發(fā)環(huán)境的依賴包

通過這樣的方式,移植代碼時,只需要移植源代碼和package.json文件,不用移植node_modules目錄,然后在移植之后通過命令即可重新恢復安裝

5.語義版本:

當x.y.z的情況下:表示是一個明確的版本號當^x.y.z的情況下:表示是x版本保持不變,y和z永遠是最新的當~x.y.z的情況下:表示的是x和y是保持不變的,z永遠是最新的

當希望使用包的人使用指定包和版本時,需要在配置文件中描述具體的依賴規(guī)則,通過語義版本來實現(xiàn),規(guī)則如下。

符號 描述 示例 示例描述

大于某個版本 >1.2.1 大于1.2.1版本

= 大于等于某個版本 >=1.2.1 大于等于1.2.1版本

< 小于某個版本 <1.2.1 小于1.2.1版本

<= 小于等于某個版本 <=1.2.1 小于等于1.2.1版本

  • 介于兩個版本之間 1.2.1 - 1.4.5 介于1.2.1和1.4.5之間
x 不固定的版本號 1.3.x 只要保證主版本號是1,次版本號是3即可
補丁版本號可增 ~1.3.4 保證主版本號是1,次版本號是3,補丁版本號大于等于4

^ 此版本和補丁版本可增 ^1.3.4 保證主版本號是1,次版本號可以大于等于3,補丁版本號可以大于等于4

  • 最新版本 * 始終安裝最新版本

三、Yarn

1.npm存在的問題:

(1)依賴目錄嵌套層次深

(2)串行下載,無法完全利用帶寬資源,多個相同版本的包被重復下載

(3)控制臺輸出大量的信息

(4)存在工程移植問題,版本依賴可以是模糊的,可能會導致工程移植后,依賴的確切版本不一致

2.如何解決上述問題:

(1)使用扁平的目錄結構

(2)并行下載,使用本地緩存

(3)控制臺僅輸出關鍵信息

(4)使用yarn-lock文件記錄確切依賴

3.優(yōu)化:

增加了某些功能強大的命令

讓既有的命令更加語義化

本地安裝的CLI工具可以使用 yarn 直接啟動

將全局安裝的目錄當作一個普通的工程,生成package.json文件,便于全局安裝移植

4.新增了 yarn.lock 文件。

它是 yarn 在安裝依賴包時,自動生成的一個文件,作用是記錄 yarn 安裝的每個 package 的版本,保證"package.json"依賴安裝的版本和實際的版本是一致。后來 npm 也新增了作用相同的 package-lock.json

五、pnpm

1.pnpm全稱:performant npm ,意味“高性能的npm”

優(yōu)勢:

目前,安裝效率高于npm和yarn的最新版

極其簡潔的node_modules目錄

避免了開發(fā)時使用間接依賴的問題

能極大的降低磁盤空間的占用

2.原理

(1)使用緩存來保存已經(jīng)安裝過的包,以及使用 pnpm-lock.yaml 來記錄詳細的依賴版本

(2)使用符號鏈接和硬鏈接(類似于快捷方式)的做法來放置依賴,從而規(guī)避了從緩存中拷貝文件的時間,使得安裝和卸載的速度更快

(3)由于使用了符號鏈接和硬鏈接,pnpm可以規(guī)避windows操作系統(tǒng)路徑過長的問題,因此,它選擇使用樹形的依賴結果,有著幾乎完美的依賴管理。也因為如此,項目中只能使用直接依賴,而不能使用間接依賴

3.硬鏈接: 硬連接指通過索引節(jié)點來進行連接。

軟鏈接:另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。

參考:

https://zhuanlan.zhihu.com/p/542738352

https://blog.csdn.net/qq_43750501/article/details/107523394

https://blog.csdn.net/weixin_42575028/article/details/127349060

http://www.xbhp.cn/news/63448.html文章來源地址http://www.zghlxwxcb.cn/news/detail-686967.html

到了這里,關于npm、yarn、pnpm的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • npm yarn pnpm 命令集

    安裝依賴 安裝某個依賴 安裝到全局(dependencies) 安裝到線下(devDependencies) 卸載某個依賴 卸載全局依賴 清除npm緩存 如果清除緩存報禁止--force錯誤 可以使用以下這條 安裝pnpm 打開CMD命令行 輸入 查看版本號 安裝依賴 安裝某個依賴 刪除某個依賴 更新所有依賴 更新某個依賴

    2024年02月12日
    瀏覽(43)
  • npm、yarn、pnpm如何清除緩存?

    npm、yarn、pnpm如何清除緩存?

    前端工程化創(chuàng)建項目會經(jīng)常使用各種安裝包管理工具,安裝各種前端依賴包。例如,npm、yarn、pnpm等。時間一長,各種安裝包管理工具的在安裝依賴時,留下的緩存文件就會變得很大,以至于影響系統(tǒng)的運行,因此必要時清除緩存就是一個不錯的選擇。本文將著重介紹npm、y

    2024年02月07日
    瀏覽(29)
  • npm, yarn和pnpm清理緩存

    npm, yarn和pnpm是時下主流的node.js包管理器。 隨著前端項目的增多,會下載許多的依賴。不管是哪種包管理器,都會使用緩存來增加下次下載的速度。但很多情況下緩存文件不會被自動清空,如果不手動清理,可能會占用非常多系統(tǒng)盤的存儲空間。 為此,本文記錄了三種包管理

    2024年01月20日
    瀏覽(29)
  • “yarn“、“npm“、“cnpm“和“pnpm“的區(qū)別

    npm(Node Package Manager)是Node.js的默認包管理器。它是一個全球最大的開源軟件注冊表,擁有數(shù)量龐大的包供開發(fā)者使用。npm具有廣泛的生態(tài)系統(tǒng)和大量的社區(qū)支持。 軟件包數(shù)量龐大,幾乎包含了所有常見的開源庫和工具。 社區(qū)活躍,有大量的文檔、教程和支持。 可以方便地

    2024年02月11日
    瀏覽(38)
  • 【JavaScript】npm、Yarn 和 pnpm 的區(qū)別

    npm、Yarn 和 pnpm 都是用于管理和構建 JavaScript 項目的包管理工具,以下是它們之間的一些區(qū)別和特點。 npm(Node Package Manager): npm 是 Node.js 官方提供的包管理工具,是 JavaScript 生態(tài)系統(tǒng)中使用最廣泛的包管理工具之一。 npm 使用 package.json 文件來記錄項目的依賴關系和配置信

    2024年02月16日
    瀏覽(23)
  • 記錄--npm, npx, cnpm, yarn, pnpm梭哈

    記錄--npm, npx, cnpm, yarn, pnpm梭哈

    依賴管理解決了在軟件開發(fā)過程中管理和協(xié)調(diào)各種依賴項的問題,簡化了開發(fā)流程,提高了項目的可靠性、可維護性和可重復性。它們幫助開發(fā)人員更高效地管理項目的依賴關系,減少了潛在的錯誤和沖突,并提供了更好的開發(fā)體驗。 在 JavaScript 生態(tài)系統(tǒng)中,有多種工具可用

    2024年01月22日
    瀏覽(65)
  • 聊一聊一些關于npm、pnpm、yarn的事

    聊一聊一些關于npm、pnpm、yarn的事

    整理了最近的閑聊,話題是前端各個包管理器,如果分享的不對或者有異議的地方,麻煩請及時告訴我~ 耐心看完,也許你會有所收獲~ 本文閱讀時間: 10-15分鐘左右 ; 難度: 初級,最好對Node有一個基礎認知 ; 通過本文,你能大致知道 npm,pnpm,yarn這些包管理工具的介紹及

    2024年04月10日
    瀏覽(23)
  • 橫向?qū)Ρ?npm、pnpm、tnpm、yarn 優(yōu)缺點

    橫向?qū)Ρ?npm、pnpm、tnpm、yarn 優(yōu)缺點

    前端工程化 是現(xiàn)代Web開發(fā)中不可或缺的一環(huán),它的出現(xiàn)極大地提升了前端開發(fā)的效率和質(zhì)量。 在過去,前端開發(fā)依賴于手動管理文件和依賴,這導致了許多問題,如 版本沖突 、 依賴混亂 和 構建繁瑣 等。而今,隨著眾多前端工程化工具的出現(xiàn),前端開發(fā)的效率得到了大大

    2024年02月10日
    瀏覽(21)
  • 包管理工具:npm、yarn、cnpm、npx、pnpm

    包管理工具:npm、yarn、cnpm、npx、pnpm

    ? yarn是由Facebook(react)、Google、Exponent 和 Tilde 聯(lián)合推出了一個新的 JS 包管理工具; ? yarn 是為了彌補早期npm 的一些缺陷而出現(xiàn)的; ? 早期的npm存在很多的缺陷,比如安裝依賴速度很慢、版本依賴混亂等等一系列的問題; ? 雖然從npm5版本開始,進行了很多的升級和改進,

    2024年02月15日
    瀏覽(59)
  • 包管理工具詳解npm、yarn、cnpm、npx、pnpm

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

    目錄: 1 npm包管理工具 2 package配置文件 3 npm install原理 4 yarn、cnpm、npx 5 發(fā)布自己的開發(fā)包 6 pnpm使用和原理 當我們使用npm install xxxx 的時候會添加一個node_module和2個json文件: ? ? ? ? 這個配置文件會記錄著你 項目的名稱 、 版本號 、 項目描述 等; ? 也會記錄著你 項目所

    2024年02月06日
    瀏覽(36)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包