Hoje tive um problema com o Heroku e a forma como seu buildpack oficial para o Node caches node_modules
. Ou seja, fui forçado a bifurcar alguns módulos, então atualizei package.json
para apontar para os repositórios do GitHub (veja esta dica ).
Infelizmente, o Heroku se recusou teimosamente a npm
aceitar os módulos do caminho atualizado e, na verdade, não estava se comportando muito melhor na minha máquina local, mas pelo menos eu poderia excluir manualmente node_modules
e reinstalar tudo. Confirmar e enviar pequenas atualizações package.json
não ajudou, então finalmente olhei para o código do buildpack
Acontece que ele sempre é executado npm prune
em módulos em cache, então decidi aproveitar isso. Então, para limpar o cache dos módulos:
- Eu removi todos os módulos do
package.json
- Comprometeu-se e empurrou essa mudança para Heroku
- Esperou que o buildpack removesse o cache
- Todos os módulos foram devolvidos para
package.json
- Comprometido e empurrado novamente para Heroku
Depois disso, o Heroku baixou corretamente meus módulos bifurcados.
ATUALIZAÇÃO: Veja abaixo uma recomendação que eu não tentei, mas que não me parece maluca:
heroku config:set NODEMODULESCACHE=false
git commit -am 'rebuild' --allow-empty
git push heroku master
heroku config:unset NODEMODULESCACHE