npm install原理
這個其實就是npm從registry下載項目到本地,沒有什么好說的
值得一提的是npm的緩存機制,如果多個項目都需要同一個版本的axios,每一次重新從registry中拉取的成本過大,所以會有緩存,如果緩存里有這個包那直接從緩存中直接拉取解壓了
怎么確定找到的就是自己需要的那個包呢?是有對應的標識符的,這個標識符就在package-lock.json里面
版本的具體也可以在package-lock.json中找(具體安裝的版本)
package-lock.json文件解析
name:項目的名稱?
version:項目的版本
lockfileVersion:lock文件的版本
requires:使用requires來跟蹤模塊的依賴關系
dependencies:項目的依賴
????????當前項目依賴axios,但是axios依賴follow-redireacts
? ? ? ? axios中的屬性:
? ? ? ? ? ? ? ? version表示實際安裝的axios版本
? ? ? ? ? ? ? ? resolved用來記錄下載的地址,registry倉庫中的位置
? ? ? ? ? ? ? ? requires/dependencies記錄當前模塊的依賴
? ? ? ? ? ? ? ? integrity用來從緩存中獲取索引,在通過索引去獲取壓縮包文件
npm install原理深入
從npm5開始,npm就支持緩存策略了(來自yarn的壓力),那么緩存有什么作用呢?
介素一副原理圖:
npm其他命令
介紹一下npm其他的幾個常用的命令
卸載某個依賴包:
npm uninstall package
npm uninstall package --save-dev
npm uninstall package -D
強制重新build:
npm rebuild
清除緩存:
npm cache clean
npm的命令很多捏:
https://docs.npmjs.com/cli-documentation/cli
可以查看文檔查命令
yarn工具
yarn工具和npm差不多,所做的事情也差不多
即生npm,何生yarn
yarn其實是為了彌補早期npm的一些缺陷(安裝依賴速度慢,版本依賴混亂)而出現的
從npm5版本開始,進行了很多的升級和改進,很多人依然喜歡用yarn
命令和使用都差不多
想要添加包的話是
yarn add
cnpm
每一種工具都有自己的適用場景
cnpm是中國適用
由于一些特殊原因,某些情況下沒辦法很好的從https://registry.npmjs.org下載下來一些需要的包
所以一些東西就會被存到鏡像服務器倉庫里
可以這樣查看npm的鏡像:
npm config get registry
也可以直接設置npm的鏡像:
npm config set registry https://registry.npm.taobao.org
但是有的人就不希望再將npm的鏡像修改了,一方面不希望隨意修改npm原本從官方下來包的渠道,另一方面如果鏡像掛了或者停止維護就又要改來改去了。。
這個時候就可以用cnpm并將它設置成淘寶的鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config get registry #https://r.npm.taobao.org