安装后 Composer 从包中删除随机文件
Composer removing random files from package after installation
这是控制台输出(缩短了一点):
λ composer require mpdf/mpdf
Using version ^6.1 for mpdf/mpdf
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
- Installing setasign/fpdi (1.6.2): Downloading (100%)
- Installing mpdf/mpdf (v6.1.3): Downloading (100%)
Writing lock file
Generating autoload files
Removed 31 files or directories.
为什么会有最后一行?当我尝试在我的项目中使用 mPDF 时,它不起作用(找不到文件),因为大多数 mPDF 源文件在目录中确实丢失了。当我在 composer 缓存中查找时,所有文件都在那里,因此 composer 可能会安装所有文件,然后随机删除 31 个文件或目录。为什么?我该如何解决这个问题?我尝试使用更新版本的软件包,同样的问题。
Composer 版本:1.5.2(刚刚更新)
还在命令之前清除缓存。
这条线是由dg/composer-cleaner包引起的我相信你已经安装了。
卸载软件包,它将停止删除文件。
或者,您可以根据包自述文件将包设置为忽略 mpdf 供应商目录:
您还可以通过 composer.json 指定要忽略的路径。据我浏览代码所知,无法忽略整个包,因此您必须明确指定根目录中的所有文件和目录。
{
"require": {
"dg/composer-cleaner": "^1.1",
"mpdf/mpdf": "^6.1"
},
"extra": {
"cleaner-ignore": {
"setasign/fpdi": [
"fpdi_bridge.php",
"pdf_parser.php"
],
"mpdf/mpdf": [
"collations",
"font",
"includes",
"patterns",
"qrcode",
"tmp",
"ttfontdata",
"ttfonts",
".gitignore",
"compress.php",
"config.php",
"config_fonts-distr-without-OTL.php",
"config_fonts.php",
"config_lang2fonts.php",
"config_script2lang.php",
"graph.php",
"graph_cache",
"iccprofiles",
"lang2fonts.css",
"mpdf.css",
"MpdfException.php",
"phpunit.xml",
"progbar.css",
"Tag.php"
]
}
}
}
使用 mPDF 7.x(现在处于测试阶段)应该容易得多,它具有更合理的项目目录结构。
这是控制台输出(缩短了一点):
λ composer require mpdf/mpdf
Using version ^6.1 for mpdf/mpdf
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
- Installing setasign/fpdi (1.6.2): Downloading (100%)
- Installing mpdf/mpdf (v6.1.3): Downloading (100%)
Writing lock file
Generating autoload files
Removed 31 files or directories.
为什么会有最后一行?当我尝试在我的项目中使用 mPDF 时,它不起作用(找不到文件),因为大多数 mPDF 源文件在目录中确实丢失了。当我在 composer 缓存中查找时,所有文件都在那里,因此 composer 可能会安装所有文件,然后随机删除 31 个文件或目录。为什么?我该如何解决这个问题?我尝试使用更新版本的软件包,同样的问题。
Composer 版本:1.5.2(刚刚更新) 还在命令之前清除缓存。
这条线是由dg/composer-cleaner包引起的我相信你已经安装了。
卸载软件包,它将停止删除文件。
或者,您可以根据包自述文件将包设置为忽略 mpdf 供应商目录:
您还可以通过 composer.json 指定要忽略的路径。据我浏览代码所知,无法忽略整个包,因此您必须明确指定根目录中的所有文件和目录。
{
"require": {
"dg/composer-cleaner": "^1.1",
"mpdf/mpdf": "^6.1"
},
"extra": {
"cleaner-ignore": {
"setasign/fpdi": [
"fpdi_bridge.php",
"pdf_parser.php"
],
"mpdf/mpdf": [
"collations",
"font",
"includes",
"patterns",
"qrcode",
"tmp",
"ttfontdata",
"ttfonts",
".gitignore",
"compress.php",
"config.php",
"config_fonts-distr-without-OTL.php",
"config_fonts.php",
"config_lang2fonts.php",
"config_script2lang.php",
"graph.php",
"graph_cache",
"iccprofiles",
"lang2fonts.css",
"mpdf.css",
"MpdfException.php",
"phpunit.xml",
"progbar.css",
"Tag.php"
]
}
}
}
使用 mPDF 7.x(现在处于测试阶段)应该容易得多,它具有更合理的项目目录结构。