2012-11-09 120 views
36

我正在使用node_swiz模塊,它依次使用驗證器模塊。如何編輯通過npm安裝的節點模塊?

我想修改驗證模塊,但我使用npm install來安裝模塊/依賴項。

我可以只更改node_modules中的驗證程序模塊,還是重新創建node_modules依賴關係,並在發佈到heroku或下次運行npm install時獲取最新版本?

的結構是這樣的:

myNodeApplication 
    - node_modules 
    - swiz 
     - node_modules 
      - validator [this is the library I want to edit] 

感謝您的幫助!

回答

94

你可以直接編輯這個文件,但是當npm更新的時候這個文件會被覆蓋,最好的辦法是直接去源代碼。

如果這些更改會影響整個模塊的功能,並且可能對其他人有用,那麼您可能需要在github上貢獻原始源並查找要實施的更改。

如果這是需要的專有功能,並且不會幫助模塊的開發,最好的辦法是從github中分出它並進行更改。您可以使用NPM直接從github安裝項目,並且此方法可讓您將未來的更改集成到原始源代碼的定製版本中。

要直接從github上安裝,使用以下命令:

npm install https://github.com/<username>/<repository>/tarball/master

+1

謝謝!這正是我想知道的。 另外,對於讀這個的其他人...我想包括在我的github上的package.json文件中的模塊,並且有關於此的信息:http://stackoverflow.com/a/8306715/1810875 – user1810875

+3

before分叉我正在改變它在本地系統中,但這種改變似乎沒有影響。更改任何JavaScript文件是node_modules/package_name/lib/file_name.js確實會影響? – inquisitive

+0

只是一個說明,不知道是否有什麼改變,但個人,我不得不指定Git的URL爲git://github.com/ / .git「 – Craig