天天看點

npm如何引入本地自建的包和需要維護的包

  之前項目中一些包需要更改,然後放到本地項目中維護。因為某些網絡限制,也有些包無法install下來,本地代碼庫會維護包。

  以下測試基于mac  npm 6.9.0版本,部落格園寫了一篇(https://www.cnblogs.com/lin0123/p/13020292.html),csdn也遷移下

  正常情況下在項目 package.json 所在的目錄(一般也是項目根目錄)運作npm install xxxx  指令之後,會從遠端或者代理位址下載下傳xxxx包到node_modules,然後在package.json生成對應的包名和版本

  如果想要依賴本地自己開發的一個包或者更改别人的包放到本地維護需要怎麼處理呢?

  如果跟項目package.json平級的目錄有一個檔案夾 test12121212121 ,在test12121212121裡面用 npm init -y 初始化了這個檔案夾, 這個檔案夾就會有一個package.json檔案。

  在根目錄 npm install test12121212121  就會将這個檔案夾下載下傳到 node_modules下面,根目錄下的 package.json 會生成對應的檔案路徑,如下圖:

  紅色框對應的本地維護的包,藍色框根目錄下的package.json

  

npm如何引入本地自建的包和需要維護的包

  注意:此時npm install 對應的檔案夾名,install的是檔案夾名稱,install包名會從遠端尋找,如果本地包名和檔案夾名不一樣,對應的package.json顯示如下:

  sdddddd 對應的包名稱,test12121212121 對應的檔案夾名稱, 運作的指令是 npm install test12121212121

  

npm如何引入本地自建的包和需要維護的包

  有些場景我們本地會維護很多包但是不希望都建立一個檔案夾,希望放到統一的檔案夾裡面,比如 根目錄建立一個lib檔案夾,這個時候如果想要下載下傳本地包,需要手動将依賴更改成對應的路徑,運作npm i指令便可以

  如下圖所示:

  lib下有個testa檔案夾,包名稱是cccccccc,可以在根目錄的package.json手動指定下載下傳這個包,包名 對應的檔案路徑,寫法如下,運作npm install的時候會将對應的檔案包下載下傳至node_modules  

npm如何引入本地自建的包和需要維護的包

  注意點:如果項目中存在了package-lock.json檔案,那麼你下載下傳本地包的時候可能不會将包增加至node_modules檔案夾下面,但是在package-lock.json中會存在記錄,如下圖的wewtwet包

npm如何引入本地自建的包和需要維護的包

  最後,本地維護的包需要滿足能夠上傳npm包管理庫的條件,本地的包如果需要能夠被下載下傳一定要有package.json檔案(快速的方法就是在本地封包件夾 npm init -y 快速生成),否則的話會找不到。 

繼續閱讀