Composer instala TCPDF com repositório .git
-
21-12-2019 - |
Pergunta
Estou tentando instalar o TCPDF via compositor.Funciona, mas infelizmente sempre instala também o diretório .git inteiro que tem 93 MB.Eu só quero instalar arquivos TCPDF sem material .git.
Como fazer isso?
Aqui está meu compositor.json:
{
"name": "myprojects/project1",
"require": {
"yiisoft/yii": "~1.1.15",
"twbs/bootstrap": "~3.2.0",
"tecnick.com/tcpdf": "~6.0.89",
"phpoffice/phpexcel": "~1.8.0"
}
}
Agradeço antecipadamente.
EDITAR 1:
A seguir está a configuração do compositor no arquivo compositor TCPDF baixado do repositório packagist - não tenho certeza se isso pode ajudar a resolver o problema:
{
"name": "tecnick.com/tcpdf",
"version": "6.0.089",
"homepage": "http://www.tcpdf.org/",
"type": "library",
"description": "TCPDF is a PHP class for generating PDF documents.",
"keywords": ["PDF","tcpdf","PDFD32000-2008","qrcode","datamatrix","pdf417","barcodes"],
"license": "LGPLv3",
"authors": [
{
"name": "Nicola Asuni",
"email": "info@tecnick.com",
"homepage": "http://nicolaasuni.tecnick.com"
}
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"classmap": [
"fonts",
"config",
"include",
"tcpdf.php",
"tcpdf_parser.php",
"tcpdf_import.php",
"tcpdf_barcodes_1d.php",
"tcpdf_barcodes_2d.php",
"include/tcpdf_colors.php",
"include/tcpdf_filters.php",
"include/tcpdf_font_data.php",
"include/tcpdf_fonts.php",
"include/tcpdf_images.php",
"include/tcpdf_static.php",
"include/barcodes/datamatrix.php",
"include/barcodes/pdf417.php",
"include/barcodes/qrcode.php"
]
}
}
EDITAR 2:
Alterei a configuração do compositor da seguinte maneira, adicionando a opção de configuração "preferred-install":"dist", mas não ajudou.Eu também tentei "dev-master", continua o mesmo...:-(
{
"name": "myprojects/project1",
"config": {
"preferred-install" : "dist"
},
"require": {
"yiisoft/yii": "~1.1.15",
"twbs/bootstrap": "~3.2.0",
"tecnick.com/tcpdf": "~6.0@stable",
"phpoffice/phpexcel": "~1.8.0"
}
}
Solução
Conselhos gerais para evitar clones
Se você obtiver o diretório inteiro, deve ser porque você configurou --prefer-source
ao instalar, ou você tem um preferred-install
valor de configuração definido como source
, ou você instala o pacote dev-master; nesse caso, o Composer usa como padrão a instalação de origem (git clone).
A solução depende da situação exata e você não forneceu detalhes suficientes para dizer qual é a correta, mas provavelmente poderá corrigi-la com um destes:
- definir
--prefer-dist
ao instalar - usar
composer config preferred-install dist
para definir a bandeira permanentemente - certifique-se de instalar apenas versões marcadas, exigindo
"tecnick.com/tcpdf": "~6.0@stable"
, então ele deve sempre escolher o pacote dist por padrão.
Caso especial para pacotes não hospedados no github ou bitbucket:
https://packagist.org/packages/tecnick.com/tcpdf na verdade, está hospedado no sourceforge, que não suporta a construção automática de zip a partir de qualquer revisão do git.Como tal, o empacotador não pode, no momento, fornecer zips e, portanto, o compositor precisa clonar o repositório.
A única solução por enquanto é fazer com que o mantenedor mova o pacote para o github, mesmo que apenas como um espelho somente leitura.
https://github.com/tcpdf-clone/tcpdf existe, mas não sei se é mantido oficialmente ou não.Se sim, ou pelo menos for confiável, seria uma opção alterar o URL do packagist do pacote tcpdf para aquele do github.