Eu notei um livro oficial do Symfony que realmente responde a esta pergunta exata, citando "Atualmente, você provavelmente deve comprometer os ativos baixados por Bower em vez de adicionar o diretório para o seu .gitignorearquivo"
Certifique-se de verificar o link na citação, que discute alguns prós e contras. O principal aspecto mencionado é que o check-in garante que suas dependências estejam sempre disponíveis, desde que seu repositório esteja disponível. Não importa o que aconteça com o Bower, o GitHub ou o que mais for necessário.
Obrigado por este artigo interessante. Por enquanto, ainda não temos um "arquivo de bloqueio" equivalente para congelar as versões.
Pierre de LESPINAY
1
@PierredeLESPINAY Apenas para o nível superior. O que está faltando é equivalente ao recurso npm shrinkwrap.
passy 12/03/14
3
Eles também dizem isso em sua postagem no blog "Em última análise, a escolha de fazer ou não o check-in de todo o seu diretório / bower_components depende de você ...".
precisa
3
O motivo por trás do check-in é que, algum dia, a biblioteca poderá desaparecer da Internet ou poderá haver algum tempo de inatividade que, por sua vez, poderá causar falhas na compilação. Como usuário do Maven / Gradle, nunca penso em verificar dependências.
O arquivo .gitignore em um projeto Yeoman AngularJS recém-gerado tem bower_components (e node_modules) listados para serem ignorados (se você não conhece o Yeoman, é uma ferramenta de andaime da web muito respeitável para aplicativos da web modernos, então isso é o suficiente para mim!):
Há um tempo e um lugar para ambas as abordagens. Para a Yeoman, é apropriado contar com o bower.json, porque é uma ferramenta em uma cadeia de ferramentas e precisa permanecer vivo e respirar com o ecossistema da bower. Para um aplicativo da web implementável, geralmente é uma boa prática confirmar dependências e manter mais controle.
Se você estiver usando Grunt e Node com o Bower, faz sentido colocar bower_components no seu .gitignore, porque quando você executa o grunt serve ou o grunt constrói, ele cuida das dependências para você, tenho certeza que é por isso que no Yeoman elas o adicionam. o .gitignore
O gerador Yeoman preencheu previamente o arquivo .gitignore com bower_components, mas também preencheu outros diretórios que eu pensaria que seriam necessários para um aplicativo final (como www), então fiz algumas pesquisas.
Descobri que www / index.html é uma versão reduzida do aplicativo / index.html. O diretório do aplicativo e seu conteúdo (incluindo bower_components) contém os arquivos de origem necessários para o diretório de saída (www). Você compromete os diretórios de origem no controle de origem (por exemplo, git), mas não nos arquivos gerados (por exemplo, www). Os gerenciadores de pacotes como bower e npm devem ser usados durante a fase de construção / geração e seus artefatos não devem ser verificados no controle de origem.
Por fim, a fonte que você faz check-in no git é a configuração mínima necessária para construir o restante do projeto para fins de desenvolvimento ou implantação.
É bom ignorar /bower_componentsdir, fazer check-in apenas bower.jsone bower-locker.bower.jsonarquivar se você criar um arquivo de bloqueio usando o bower-locker escrito por Shawn Lonas .
Antes da criação do bower-locker, havia uma desvantagem causada por um problema de o bower não ter capacidade de retração, mas pode ser atenuado pela biblioteca acima.
Execute os seguintes comandos para alcançá-lo:
npm install bower-locker -g
ou
yarn global add bower-locker
gere o arquivo de bloqueio com base no bower.jsonarquivo existente executando:
bower-locker lock
O bower.jsonarquivo original será renomeado parabower-locker.bower.json
.gitignore
arquivo"Respostas:
A página oficial do Bower declarou:
Certifique-se de verificar o link na citação, que discute alguns prós e contras. O principal aspecto mencionado é que o check-in garante que suas dependências estejam sempre disponíveis, desde que seu repositório esteja disponível. Não importa o que aconteça com o Bower, o GitHub ou o que mais for necessário.
fonte
O arquivo .gitignore em um projeto Yeoman AngularJS recém-gerado tem bower_components (e node_modules) listados para serem ignorados (se você não conhece o Yeoman, é uma ferramenta de andaime da web muito respeitável para aplicativos da web modernos, então isso é o suficiente para mim!):
.gitignore
fonte
Há um tempo e um lugar para ambas as abordagens. Para a Yeoman, é apropriado contar com o bower.json, porque é uma ferramenta em uma cadeia de ferramentas e precisa permanecer vivo e respirar com o ecossistema da bower. Para um aplicativo da web implementável, geralmente é uma boa prática confirmar dependências e manter mais controle.
Aqui está um bom artigo que eu gosto que discute isso.
fonte
Se você estiver usando Grunt e Node com o Bower, faz sentido colocar bower_components no seu .gitignore, porque quando você executa o grunt serve ou o grunt constrói, ele cuida das dependências para você, tenho certeza que é por isso que no Yeoman elas o adicionam. o .gitignore
fonte
O gerador Yeoman preencheu previamente o arquivo .gitignore com bower_components, mas também preencheu outros diretórios que eu pensaria que seriam necessários para um aplicativo final (como www), então fiz algumas pesquisas.
Descobri que www / index.html é uma versão reduzida do aplicativo / index.html. O diretório do aplicativo e seu conteúdo (incluindo bower_components) contém os arquivos de origem necessários para o diretório de saída (www). Você compromete os diretórios de origem no controle de origem (por exemplo, git), mas não nos arquivos gerados (por exemplo, www). Os gerenciadores de pacotes como bower e npm devem ser usados durante a fase de construção / geração e seus artefatos não devem ser verificados no controle de origem.
Por fim, a fonte que você faz check-in no git é a configuração mínima necessária para construir o restante do projeto para fins de desenvolvimento ou implantação.
fonte
É bom ignorar
/bower_components
dir, fazer check-in apenasbower.json
ebower-locker.bower.json
arquivar se você criar um arquivo de bloqueio usando o bower-locker escrito por Shawn Lonas .Antes da criação do bower-locker, havia uma desvantagem causada por um problema de o bower não ter capacidade de retração, mas pode ser atenuado pela biblioteca acima.
Execute os seguintes comandos para alcançá-lo:
ou
gere o arquivo de bloqueio com base no
bower.json
arquivo existente executando:O
bower.json
arquivo original será renomeado parabower-locker.bower.json
fonte