npm install后發生了什么?


下載項目后,執行的第一個命令行一般都是npm install。在這個過程中可能一帆風順,也可能遇到大大小小的報錯,有時候花點時間各種搜索能解決,可下次遇到還是一頭霧水的上網找各種方案嘗試解決報錯,造成的結果就是用的懵懂,也低效。


而我遇到的麻煩從想刪除node_modules一直無法刪除開始,明明清除了進程,依然提示程序占用,或者按網上的教程通過命令行刪除,刪半天還在刪除中。后面解決方式是從vscode里面刪除node_modules,操作簡單高效。不過也因為這個麻煩,讓我想去整合npm install背后的故事。

 

1)下載安裝包

首當其沖cnpm install

國內npm下載依賴的速度太慢,一般都通過安裝cnpm淘寶鏡像替代

npm install -g cnpm --registry=https://registry.npm.taobao.org

通過觀察node_modules,不經意間發現得到npm包有所區別,請看如下截圖:

 

2)解決安裝過程中報錯(此處建立在項目本身正常無誤的情況下)

包下載完后一般執行npm run dev就可正常啟動項目,不過也可能遇到提示xx包無法找到等其他報錯。

  • 第一感覺都是重新npm install, 可能就恢復正常
  • 如果還是不行,刪除node_modules重新下載,一般可解決問題。
  • 假如刪除node_modules重新下載問題依舊,此時就需借助此命令行:npm cache clean --force

npm cache clean --force 說明:

查看相關資料說在npm@5之后,npm把緩存數據放在配置文件中cache字段配置的路徑下面的_cacache 文件夾中,在我的本機中也就是C:\Users\yang_fu\AppData\Roaming\npm-cache下的_cacache文件夾, 如下圖

我們每次在執行npm install時,都是先從緩存數據中查找有無此包,有的話直接從緩存中取。故如果我們可能因為網絡原因導致下載的包不完整,這就可能造成刪除node_modules重新下載的依舊是問題包。不過_cacache文件夾中不包含全局安裝的包,所以想清除存在問題的包為全局安裝包時,需用npm uninstall -g <package>解決

 

3)安裝過程中的流程

安利此博文,詳細介紹了npm install的安裝流程、包之間安裝的原理、package-lock.json文件的作用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM