国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

越來越流行的 Pnpm,了解一下

開發(fā) 前端
前端開發(fā)用的包管理工具是 npm(Node Package Manager),應(yīng)付普通的開發(fā)還是不錯(cuò)的。

大家好,我是前端西瓜哥。今天我們來認(rèn)識(shí)一下 pnpm 包。它是一個(gè)包管理工具,但卻逐漸流行,讓我們看看它到底做了什么驚人之舉。

pnpm 為何能流行

快速和輕量

前端開發(fā)用的包管理工具是 npm(Node Package Manager),應(yīng)付普通的開發(fā)還是不錯(cuò)的。

但也有不少痛點(diǎn),于是 yarn 輪子被造了出來。它通過并行下載和緩存解決了 npm 下載慢的問題,并引入 lockfile 機(jī)制解決安裝版本號(hào)不固定導(dǎo)致一些錯(cuò)誤的問題。當(dāng)然,這些問題也被 npm 的后續(xù)版本跟進(jìn)改善了。

但它們還有一個(gè)比較重要的問題沒解決,那就是 包的冗余問題。

如果你在本地安裝了幾十個(gè)項(xiàng)目,這些項(xiàng)目的依賴項(xiàng)的安裝都是獨(dú)立的,即使這些項(xiàng)目有大量相同版本的依賴包,也是會(huì)被安裝多次。

首先這會(huì)導(dǎo)致你的容量一般的電腦痛苦不堪。當(dāng)然更重要的是安裝會(huì)很慢,明明本地有,但你就是要去網(wǎng)上下載。如果網(wǎng)速很慢包很大還要下完還要運(yùn)行一些編譯腳本,那太痛苦了。

pnpm 正是為了解決這個(gè)問題,而逐漸流行起來的包管理工具。

它的原理并不復(fù)雜,就是將包和版本集中到一個(gè)地方保存起來,如果一個(gè)項(xiàng)目用到某個(gè)版本的包,剛好本地又有,那就通過軟硬鏈接鏈接過去,省去了下載時(shí)間和硬盤空間。

幽靈依賴

yarn 和 npm 后來的版本其實(shí)也是做了 項(xiàng)目層級(jí)的緩存的,就是將一些包的依賴包,把它們放到 node_modules 的最外層,而解決了無限嵌套的問題。那是可能發(fā)生幾百個(gè) node_modules 遞歸的場(chǎng)景的,太可怕了。

但這種解法,又導(dǎo)致了 幽靈依賴 的問題。

比如我裝個(gè) a 包,我居然就能用 b。為什么?因?yàn)?a 依賴 b,然后 b 被裝在 node_modules 最外層,根據(jù) nodejs 找包的機(jī)制,我們就能用這個(gè) b 庫。

如果 a 更新后不再依賴 b,b 就不會(huì)被安裝,而我們的項(xiàng)目剛好用到它,那就找不到然后報(bào)錯(cuò)了。

另外,node_modules 下最外層的包只能有一個(gè)版本,如果某個(gè)包依賴的是其他版本,那不好意思,緩存失效,要下載另一個(gè)版本放在這個(gè)包自己的 node_modules 下。

pnpm 天然能解決這種問題,node_module 下,首先有一個(gè) .pnpm 的文件,通過包名 + 版本號(hào),指向唯一的全局緩存。然后 node_modules 下的包指向 .pnpm 下對(duì)應(yīng)的特定版本的包。

看下圖,安裝 axios 包時(shí)帶上了它的很多依賴包,但我們用 .pnpm 做了隔離,所以訪問不到 axios 依賴的包,解決了幽靈依賴的問題。

圖片

pnpm 簡單使用

然后我們?cè)俸唵慰纯?pnpm 的用法。

安裝

pnpm 的安裝方法在官方文檔寫了很多。但 pnpm 其實(shí)也是 npm 下的一個(gè)包,所以我更傾向于這樣安裝:

npm install -g pnpm

初始化項(xiàng)目

pnpm init

不用加 -y ,pnpm 直接給你生成好一個(gè) package.json 文件。

我覺得這個(gè)優(yōu)化是不錯(cuò)的,npm init 如果忘記加上 -y,就要填好長好長的選項(xiàng)才能生成 package.json。說真的我覺得生成一個(gè)默認(rèn)的 package.json,然后在上面改更方便,也不是像 create-react-app 那樣需要根據(jù)選項(xiàng)創(chuàng)建一堆文件。

安裝所有依賴

pnpm install

安裝指定包

pnpm install <pkg-name>
# 或用 install 的別名 i
pnpm i <pkg-name>
#
npm add <pkg-name>

你說 install 和 add 有啥區(qū)別,我也不太懂。反正我感覺都差不多。

npm 用的是 install 子命令來安裝包,一開始的版本如果不加 --save 是不會(huì)往 package.json 加上包信息的,有點(diǎn)坑,在 v5 后默認(rèn)開啟 --save。

更新包

pnpm update <pkg-name>

運(yùn)行 npm script

pnpm <cmd>

吸收了 yarn 的優(yōu)點(diǎn),簡潔。

卸載包

pnpm remove <pkg-name>
# 或
pnpm rm <pkg-name>

結(jié)尾

西瓜哥我啊,最喜歡 pnpm 了,heart heart heart。

責(zé)任編輯:姜華 來源: 前端西瓜哥
相關(guān)推薦

2019-10-28 15:10:31

懶人剪輯運(yùn)動(dòng)相機(jī)移動(dòng)應(yīng)用

2021-04-15 13:48:08

視頻監(jiān)控視頻分析智能安防

2011-04-21 08:59:13

javascriptPythonRuby

2022-01-14 10:50:23

PythonRust編程語言

2011-04-20 14:54:24

編程語言

2010-12-17 09:20:23

主機(jī)備份災(zāi)難恢復(fù)

2018-04-13 10:54:17

微型數(shù)據(jù)中心監(jiān)控

2017-12-26 15:34:55

2011-12-01 09:33:17

Google微軟

2021-08-03 11:09:41

智能手機(jī)功能技術(shù)

2022-05-27 11:44:53

JS代碼

2017-10-27 12:28:14

云端遷移云計(jì)算

2022-05-17 09:17:45

JS 代碼越來越難讀

2024-02-21 09:44:33

Rust前端

2024-11-19 18:03:04

2022-12-13 11:13:34

數(shù)據(jù)傳感器

2023-02-21 09:29:57

ChatGPT人工智能

2020-09-02 09:25:23

遷移公共云數(shù)據(jù)

2021-04-02 13:00:51

大數(shù)據(jù)數(shù)據(jù)采集

2024-01-12 19:12:46

點(diǎn)贊
收藏

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

国产精品99久久久| 久久资源免费视频| 9999精品| 99久久无色码| 在线中文字幕一区二区| 秋霞电影网一区二区| 欧美国产大片| 日韩日韩日韩日韩| 国产高清在线观看免费不卡| 国产国产人免费人成免费视频| 精品国偷自产国产一区| 日韩高清中文字幕一区| 国产乱妇乱子在线播视频播放网站| 精品中文字幕乱| 激情综合网激情| 日韩黄色免费电影| 久久电影天堂| 青檬在线电视剧在线观看| 一本色道久久综合亚洲二区三区| 久久久久一区二区三区四区| 亚洲高清网站| 国产超碰精品| 欧美扣逼视频| 制服丝袜中文字幕在线观看| 加勒比日本影视| 日本熟妇人妻xxxx| 久久精品五月婷婷| 国产成人精品日本亚洲| 亚洲欧美激情视频| 欧美日韩国产成人在线免费| 国产精品萝li| 韩国毛片一区二区三区| 欧美黑人做爰爽爽爽| 51精品国产| 久久不射影院| 精品久久av| 在线观看国产高清视频| 不卡影院一区二区| av磁力番号网| 日韩美女爱爱视频| 日本国产在线播放| 亚洲va男人天堂| 国产精品久久久久不卡| 日本91av在线播放| 国产精品久久久久久久久影视| 超碰97人人做人人爱少妇| 日韩电影中文字幕一区| 亚洲网站在线观看| 91福利区一区二区三区| 国产一区二区三区久久悠悠色av| 多野结衣av一区| 中文字幕在线一区二区三区| 在线毛片观看| av第一福利在线导航| 国产美女极品在线| 99中文字幕在线观看| 黄色99视频| 国产在线一区二区三区播放| 日韩有码在线电影| 欧美日韩一二三区| 91精品国产aⅴ一区二区| 中文字幕综合网| 自拍av一区二区三区| 成人免费视频一区| av亚洲精华国产精华| 中文字幕 久热精品 视频在线| 亚洲国产精品麻豆| 精品久久久精品| 亚洲黄色av网站| 日韩午夜av电影| 亚洲黄色片网站| 中文字幕亚洲情99在线| 欧美大胆在线视频| 久久97精品久久久久久久不卡| 国产视频精品免费播放| 久久成人综合视频| 美女啪啪无遮挡免费久久网站| 欧美激情第1页| 日韩一区二区三区国产| 国产精品美女在线| yy111111少妇影院日韩夜片 | 手机在线一区二区三区| 日韩一区二区久久| 狠狠色伊人亚洲综合成人| 精品国产91| bbw在线视频| 尤物av无码色av无码| 欧美黑人视频一区| 国产区亚洲区欧美区| 欧美国产日韩中文字幕在线| 26uuu亚洲伊人春色| 日本一本a高清免费不卡| 国产精品吹潮在线观看| 中文字幕无线精品亚洲乱码一区 | 日韩久久久久久久| 国产精品亚洲a| 国产中文字幕在线播放| 天堂久久午夜av| 日韩中文字幕网址| 亚洲综合精品| 91在线视频播放| 一本久道中文字幕精品亚洲嫩| 亚洲国产第一页| 久久影视电视剧免费网站清宫辞电视| 国产精品久久久久久久久久| 亚洲精品乱码视频| 在线色视频网| 亚洲人成777| 久久婷婷丁香| 亚洲三级在线看| 国产视频一区在线播放| 日韩1区2区日韩1区2区| 99精品网站| 中文精品一区二区| 免费视频一区| 国产精品激情电影| av成人免费在线观看| 欧美丝袜一区二区| 性8sex亚洲区入口| 久久久精品蜜桃| 国产成人啪午夜精品网站男同| 国产一区二区中文字幕| 欧美日韩午夜视频在线观看| 日本午夜人人精品| 玖玖精品在线视频| 羞羞的视频在线看| 日日夜夜一区二区| 欧美日韩国产首页在线观看| 久久人人爽人人爽人人片av高请| 亚洲自拍av在线| 成人午夜视频在线观看免费| 亚洲成av在线| 国一区二区在线观看| 性做久久久久久免费观看| 久久久久久久香蕉网| 热re99久久精品国产99热| 国产精品久久久久久久久久久免费看 | 日韩美女激情视频| 欧美日韩国产经典色站一区二区三区| 日韩av在线免费播放| 日韩欧美激情一区二区| 欧美边添边摸边做边爱免费| 久久久久久久久丰满| 欧美福利一区二区| 北条麻妃av高潮尖叫在线观看| 日韩电影在线观看完整版| 国产99亚洲| 久久久久9999亚洲精品| 在线成人激情黄色| 400部精品国偷自产在线观看 | 狠狠做深爱婷婷久久综合一区| 91成人在线观看喷潮| 亚洲男人天堂av网| 欧美日韩mp4| 久久视频中文字幕| 欧美精品一区在线| 国产特级嫩嫩嫩bbb| 日本成人在线播放| 婷婷综合六月| 亚洲午夜精品久久久久久app| www国产成人免费观看视频 深夜成人网| 亚洲麻豆国产自偷在线| 国产亚洲视频中文字幕视频| 日本公妇乱淫免费视频一区三区| 日韩欧美专区| 亚洲国产成人精品视频| 青草青草久热精品视频在线观看| 蜜桃视频日韩| 91精品国产一区二区三密臀| 女海盗2成人h版中文字幕| 黄色欧美在线| 国产成人精品亚洲777人妖| 亚洲国产精品视频| 日韩视频在线一区| 久热这里只精品99re8久| free亚洲| 2020国产精品小视频| 久久精品三级| 色综合 综合色| 国产精品久久久久免费a∨| 人妻少妇精品久久| 91九色国产在线播放| 美女尤物久久精品| 91精品国产综合久久香蕉的特点 | 欧美日韩国产成人精品| 一个色综合网| 精品福利一区二区| 视频一区二区综合| 极品av少妇一区二区| 按摩亚洲人久久| 欧美激情一区二区| 久久九九影视网| 久久亚洲精品小早川怜子| av亚洲精华国产精华精华| 成人精品视频一区二区三区尤物| 国产剧情在线观看一区二区| 国产自产视频一区二区三区| 国产成人精品免费在线| 99视频有精品| 国产精品免费观看视频|