Modos de bifurcação e patch npm hospedados no GitHub

Eu li Como fazer bifurcação e correção de módulos npm e segui as instruções, mas não consegui fazer funcionar para mim. Olhando para o log do npm, descobri que o problema estava nos arquivos zip sendo baixados, e não nos tarballs. Então, aqui está o truque sobre como incluir seu repositório GitHub corretamente em npm:

  1. Vá para a página do fork
  2. No lado direito da página, você encontrará o botão “Baixar ZIP” (ou o que quer que esteja vendo). Clique com o botão direito nele e copie o link para o qual ele aponta. Deve ser algo parecido https://github.com/SoftwareMarbles/jugglingdb/archive/master.zip.
  3. Editar URL do link substituindo archivecom tarballe remover a .zipextensão. Você deve acabar com algo parecido https://github.com/SoftwareMarbles/jugglingdb/tarball/master.
  4. Cole isso no seu em package.jsonvez da versão do pacote:
"jugglingdb": "https://github.com/SoftwareMarbles/jugglingdb/tarball/master"

E é isso – npm installfunciona como deveria e instala o módulo a partir do link.

Você pode fazer o mesmo para um commit específico (e na verdade isso é o que este protocolo recomendava originalmente):

  1. Vá para a página do fork
  2. Vá para os commits
  3. No lado direito do commit que você deseja usar, clique em “Procurar código”
  4. Na página de código de navegação, clique com o botão direito do mouse no botão “Baixar ZIP” (ou o que quer que você esteja vendo) e copie. Deve ser algo assim https://github.com/SoftwareMarbles/express-jsend/archive/fdd4089087d916fa6e3b5abaa1ff9dd9ea96df8d.zip.
  5. Editar que URL substituindo archivecom tarballe remover a .zipextensão. Você deve acabar com algo parecido https://github.com/SoftwareMarbles/express-jsend/tarball/fdd4089087d916fa6e3b5abaa1ff9dd9ea96df8d.
  6. Cole isso no seu package.json em vez da versão. Como isso:
"express-jsend": "https://github.com/SoftwareMarbles/express-jsend/tarball/fdd4089087d916fa6e3b5abaa1ff9dd9ea96df8d"