之前一直以為npm改成淘寶鏡像後和cnpm本質是一樣的,今天在研究package-lock.json時候發現,這兩者還是有很大區别。特記錄下:
先貼下截圖對比:
1.使用cnpm安裝lodash
2.使用改成淘寶倉庫的npm安裝lodash
通過截圖會發現:
npm ERR! code EINVALIDPACKAGENAME npm ERR! Invalid package name "[email protected]@lodash": name cannot start with an underscore; name can only contain URL-friendly characters
但是使用cnpm uninstall lodash後,不會報錯,此時會删掉cnpm安裝的兩個包中其中一個既非下劃線(正常名字)的包。剩餘的那個包是可以正常通過鼠标點擊打開的。然後在文件中require會報錯,提示沒有這個包。
- 先執行了cnpm install lodash,然後手動删除cnpm安裝的兩個包中其中一個即下劃線(非正常名字)的包,剩餘的那個包,發現無法通過鼠标點擊打開了。然後在文件中require會報錯,提示沒有這個包。
- 所以,cnpm安裝的的2個模塊,兩者應該存在引用關系,正常名字模塊是非正常名字模塊的索引,兩者都必須存在才可以使用。但是npm安裝下來就不存在這種情況了,因為隻有一個正常名字模塊。
- 實測發現,盡管使用npm改成淘寶倉庫,發現安裝速度還是遠遠比cnpm慢(當模塊比較多的時候)。可能應該和cnpm安裝的文件結構有關系吧。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!