Estou usando o módulo node_swiz, que por sua vez usa o módulo validador.
Quero fazer alterações no módulo validador, mas usei o npm install para instalar os módulos / dependências.
Posso apenas fazer alterações no módulo validador dentro de node_modules ou essas dependências de node_modules serão recriadas e a versão mais recente obtida quando eu publicar no heroku ou na próxima vez que executar npm install?
A estrutura é semelhante a esta:
myNodeApplication
- node_modules
- swiz
- node_modules
- validator [this is the library I want to edit]
Obrigado pela ajuda!
/node_modules
e executarnpm install
então está tudo bem!Você pode usar patch-package para fazer e persistir mudanças nos módulos do nó.
Isso pode ser feito primeiro fazendo alterações no pacote interno
node_modules
e, em seguida, executando o seguinte comando,<package name>
sendo o nome do pacote que você acabou de fazer.patch-package criará então uma
patches
pasta com um arquivo dentro, representando suas mudanças. Este arquivo pode então ser enviado ao git e os patches podem ser restaurados posteriormente executandonpx patch-package
(sem nenhum argumento).Etapa opcional:
Adicione o seguinte na seção de script de seu package.json para corrigir automaticamente a dependência ao executar "instalação npm".
fonte
Eu não queria publicar um novo módulo e também não queria
npm install
sobrescrever minhas alterações. Eu encontrei uma solução para esses dois problemas, mas provavelmente seria melhor seguir o conselho de @Sdedelbrock. Mas se você quiser fazer isso, veja como:package.json
arquivo para remover a dependência que você deseja editar./node_modules
e mova a pasta para outro lugar em seu repositório que possa ser submetido. Então agora/node_modules/dependency
está em/dependency
cd
no diretório de dependência e digitenpm link
cd
na raiz do diretório do seu projeto e digitenpm link dependency
É importante que você faça isso fora de/node_modules
e/dependency
Se tudo funcionou, agora você deve ter um link simbólico que foi criado em
/node_modules/dependency
. Agora você pode executar seu projeto para ver se funciona.fonte