Como extrair um pacote de Meteorito existente de forma limpa?

Eu estou tentando descobrir a melhor / mais limpa maneira de extrair um pacote existente no Atmosphere dentro de um projeto. Eu encontrei algumas ocasiões em que um pacote existente precisava de algumas modificações e fui obrigado a forçá-lo.

Tanto quanto eu posso dizer, as seguintes opções existem. Infelizmente, todos eles têm seus próprios problemas e ainda não encontrei a solução perfeita. usareimeteor-router como um exemplo:

1. Simplesmente copie os arquivos do pacote para a pasta de pacotes

Passos:

removerpackages/router/.git/editarpackages/.gitignore e remova a linha 'roteador'remover o roteador do seusmart.jsonadicionarpackages/router para o seu repositório de projeto e cometeragora faça alterações (desta forma seu commit inicial é uma versão limpa e você pode descobrir o que você mesmo modificou)

Vantagens:

fácil de alcançar e entendertodo o código em que você confia pode ser encontrado em seu repositório de projetos

Desvantagens:

você perde todo o histórico dos repositórios originaisé difícil atualizar para uma versão mais recenteÉ difícil contribuir com suas alterações para o projeto original

Não considere isso para qualquer um, mas os pacotes mais simples!

2. Bifurque-se no github e depois ...

Para desembolsar um pacote no github, o seu pode verificar o seusmart.lock arquivo para ver qual repositório está sendo usado. Vá para a página do github desse repositório e bifurque-a.

Em seguida, você tem três opções:

2a. Adicione como submódulo git

Mais informações sobre submodules git:http://git-scm.com/book/en/Git-Tools-Submodules

Passos:

Veja o link acima sobre como iniciar / criar / atualizar um submóduloRemova o pacote do seusmart.json

Vantagens:

As versões do submódulo estão conectadas ao seu projetoMudanças são imediatamente apanhadas

Desvantagens:

Todos os desenvolvedores precisam executargit submodule init pela primeira vez eupdate atualizarVocê tem que estar ciente dos problemas com submódulos ao editar o checkoutLeia sobre outros problemas com submódulos2b. Edite seu projetosmart.json para usar sua versão

Passos:

Na tuasmart.json, encontrar"router": {} e adicione"git": "https://github.com/USER/meteor-router.git" dentro do vazio{}.Opcionalmente, adicione um"branch" ou"tag".

Vantagens:

Você ainda pode usar o Meteorite para gerenciar seus pacotes externosFuncionará automaticamente para outros desenvolvedores e em ambientes de implementação

Desvantagens:

O código na sua pasta de pacotes não é editável, pois não é um repositório gitO Meteorite não será atualizado automaticamente para a versão mais recente toda vez que você executar

(Melhoria sugerida do Meteorito: permite que os pacotes sejam instalados em uma forma editável, como o pip do Python permite usar o parâmetro '-e')

2c. Clone fora do seu projeto e adicione um"path" parasmart.json

Passos:

Clone o pacote para um lugar fora do seu projetoSemelhante ao 2b, adicione um"path" para o seusmart.json para apontar Meteorito para o seu checkout local

Vantagens:

Você pode editar o pacote à vontade e o Meteor selecionará automaticamente as alterações.

Desvantagens:

Se você cometer estesmart.json, você provavelmente irá quebrar todos os outros ambientes de desenvolvimento / implantação ...

Qual método você usa? Como você trabalha em torno das desvantagens desse método?

Eu poderia ter perdido alguns problemas com essas soluções.

questionAnswers(4)

yourAnswerToTheQuestion