2012-11-09 30 views
36

Używam modułu node_swiz, który z kolei korzysta z modułu walidatora.Jak edytować moduł węzła zainstalowany przez npm?

Chcę dokonać zmian w module walidatora, ale użyłem instalacji npm do zainstalowania modułów/zależności.

Czy mogę po prostu wprowadzić zmiany do modułu sprawdzania poprawności w module node_modules, czy też te zależności węzła_modules zostaną ponownie utworzone, a najnowsza wersja otrzyma, gdy opublikuję w heroku lub następnym razem, gdy uruchomię npm install?

struktura wygląda następująco:

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

Dzięki za pomoc!

Odpowiedz

94

Możesz edytować plik bezpośrednio, ale zostanie to nadpisane za każdym razem, gdy pojawi się aktualizacja, najlepiej przejść od razu do źródła.

Jeżeli zmiany wpływają na funkcjonalność całego modułu i mogą być przydatne dla innych, można przyczynić się do oryginalnego źródła na github i spojrzeć na zmianę być wykonywany.

Jeśli jest to zastrzeżony funkcjonalność, co jest potrzebne, i nie przyczyniają się do rozwoju modułu, najlepszą rzeczą do zrobienia jest to widelec z github i wprowadź zmiany. Możesz instalować przedmioty bezpośrednio z githubu przy użyciu NPM, a ta metoda umożliwi ci integrację przyszłych zmian z twoją niestandardową wersją z oryginalnego źródła.

Aby zainstalować bezpośrednio z github, należy użyć następującego polecenia:

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

+1

dzięki! Dokładnie to chciałem wiedzieć. Również dla innych czytających ten ... Chciałem to moduł, który znajduje się na mojej github w pliku package.json i nie ma informacji o tym tutaj: http://stackoverflow.com/a/8306715/1810875 – user1810875

+3

przed Rozwidlenia Zmieniam je w systemie lokalnym, ale zmiana nie wydaje się wpływać. Zmiana jakiegokolwiek pliku javascript, który jest node_modules/nazwa_pakietu/lib/nazwa_pliku.js ma wpływ? – inquisitive

+0

Tylko wiadomość, nie jestem pewien, czy coś się zmieniło, ale osobiście musiałem podać adres URL Git jako git: //github.com/ / .git " – Craig

Powiązane problemy