Limpe o cache npm do Heroku

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.jsonpara apontar para os repositórios do GitHub (veja esta dica ).

Infelizmente, o Heroku se recusou teimosamente a npmaceitar 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_modulese reinstalar tudo. Confirmar e enviar pequenas atualizações package.jsonnão ajudou, então finalmente olhei para o código do buildpack

Acontece que ele sempre é executado npm pruneem módulos em cache, então decidi aproveitar isso. Então, para limpar o cache dos módulos:

  1. Eu removi todos os módulos do package.json
  2. Comprometeu-se e empurrou essa mudança para Heroku
  3. Esperou que o buildpack removesse o cache
  4. Todos os módulos foram devolvidos para package.json
  5. 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