之前項目中一些包需要更改,然后放到本地項目中維護。因為某些網絡限制,也有些包無法install下來,本地代碼庫會維護包。
以下測試基於mac npm 6.9.0版本
正常情況下在項目 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 install 對應的文件夾名,install的是文件夾名稱,install包名會從遠程尋找,如果本地包名和文件夾名不一樣,對應的package.json顯示如下:
有些場景我們本地會維護很多包但是不希望都創建一個文件夾,希望放到統一的文件夾里面,比如 根目錄新建一個lib文件夾,這個時候如果想要下載本地包,需要手動將依賴更改成對應的路徑,運行npm i命令便可以
如下圖所示:
注意點:如果項目中存在了package-lock.json文件,那么你下載本地包的時候可能不會將包增加至node_modules文件夾下面,但是在package-lock.json中會存在記錄,如下圖的wewtwet包
最后,本地維護的包需要滿足能夠上傳npm包管理庫的條件,本地的包如果需要能夠被下載一定要有package.json文件(快速的方法就是在本地包文件夾 npm init -y 快速生成),否則的話會找不到。