[英]How to edit a node module installed via npm?
我正在使用 node_swiz 模塊,該模塊又使用驗證器模塊。
我想對驗證器模塊進行更改,但我使用 npm install 來安裝模塊/依賴項。
我可以只對 node_modules 中的驗證器模塊進行更改,還是會重新創建 node_modules 依賴項並在我發布到 heroku 或下次運行 npm install 時獲取最新版本?
結構如下所示:
myNodeApplication
- node_modules
- swiz
- node_modules
- validator [this is the library I want to edit]
謝謝您的幫助!
您可以直接編輯文件,但是每當 npm 更新時,這都會被覆蓋,最好的辦法是直接轉到源。
如果更改會影響整個模塊的功能,並且可能對其他人有用,您可能希望為 github 上的原始源做出貢獻並尋找要實現的更改。
如果這是需要的專有功能,並且無助於模塊的開發,最好的辦法是從 github 中 fork 並進行更改。 您可以使用 NPM 直接從 github 安裝項目,這種方法可以讓您將未來的更改從原始源集成到您的自定義版本中。
要直接從 github 安裝,請使用以下命令:
npm install https://github.com/<username>/<repository>/tarball/<branch>
您可以使用patch-package對節點模塊進行更改並保持更改。
這可以通過首先對node_modules
的包進行更改,然后運行以下命令來完成,其中<package name>
是您剛剛更改的包的名稱。
npx patch-package <package name>
然后 patch-package 將創建一個包含文件的patches
文件夾,代表您的更改。 然后可以將此文件提交到 git,稍后可以通過運行npx patch-package
(不帶任何參數)來恢復npx patch-package
。
可選步驟:
在 package.json 的腳本部分添加以下內容,以便在執行“npm install”時自動修補依賴項。
"postinstall": "npx patch-package"
我不想發布新模塊,也不想npm install
覆蓋我的更改。 我找到了解決這兩個問題的方法,但最好采納 @Sdedelbrock 的建議。 但如果你想這樣做,方法如下:
package.json
文件以刪除您要編輯的依賴項。/node_modules
並將文件夾移動到存儲庫中可以提交的其他位置。 所以現在/node_modules/dependency
位於/dependency
cd
進入依賴目錄並輸入npm link
cd
進入項目目錄的根目錄並鍵入npm link dependency
在/node_modules
和/dependency
之外執行此操作很重要如果一切正常,您現在應該有一個在/node_modules/dependency
創建的符號鏈接。 現在您可以運行您的項目以查看它是否有效。
Fork Github repo 並進行必要的更改,然后您可以安裝該軟件包,例如
npm install git+https://github.com/visionmedia/express.git
我正在使用node_swiz模塊,而后者又使用了驗證器模塊。
我想對驗證器模塊進行更改,但是我使用npm install來安裝模塊/依賴項。
我可以只更改node_modules內部的驗證器模塊,還是在發布到heroku或下次運行npm install時重新創建node_modules依賴關系並獲得最新版本?
結構如下:
myNodeApplication
- node_modules
- swiz
- node_modules
- validator [this is the library I want to edit]
謝謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.