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:
Passos:
removerpackages/router/.git/
editarpackages/.gitignore
e remova a linha 'roteador'remover o roteador do seusmart.json
adicionarpackages/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 projetosDesvantagens:
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 originalNã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 gitMais 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 apanhadasDesvantagens:
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ãoPassos:
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çãoDesvantagens:
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 localVantagens:
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.