簡體   English   中英

如何編輯通過 npm 安裝的節點模塊?

[英]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 的建議。 但如果你想這樣做,方法如下:

  1. 編輯您的package.json文件以刪除您要編輯的依賴項。
  2. 進入項目的/node_modules並將文件夾移動到存儲庫中可以提交的其他位置。 所以現在/node_modules/dependency位於/dependency
  3. cd進入依賴目錄並輸入npm link
  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM