Composer:供应商文件夹中缺少一些文件

问题描述 投票:0回答:2

如何强制 Composer 完全重新安装我的所有供应商软件包?

在与服务器同步时,我丢失了供应商文件夹中的大部分 JS 文件。它发生了。我注意到没有命令强制作曲家完全重新安装软件包。它的作用是检查版本是否是最新上传的,如果是则跳过该包。删除锁定文件也不起作用。

有什么办法可以解决这个问题吗?

github composer-php
2个回答
5
投票

如果删除软件包的vendor目录,那么它将在下次安装或更新时重新安装。例如,如果包名为

foo/bar
,则删除
vendor/foo/bar
即可。如果它是某些 CMS 的插件或其他东西,它可能位于供应商之外的其他位置,但如果您有最近的作曲家(运行
composer self-update
以确保),您可以通过运行
composer show -iP
检查它的位置,输出应该列出所有软件包及其安装路径。


0
投票

没有意识到作曲家不会在不先删除目录的情况下完全更新目录,Saldaekanswer正是我所需要的,但有以下警告。

在 Magento 2 上

在 Magento 2 上,只能在调用

bin/magento maintenance:enable
后才能删除该目录,因为
bin/magento
命令取决于正在部署的包。因此,在调用
vendor
之前,删除了包
composer update
目录。

这是我当前的订单:

cd html
#required to remove object definition conflicts (self-deprecating bad code smell)
rm -rfv app/code/<vendor package>
bin/magento maintenance:enable
rm -rfv vendor/<vendor package>
composer update
# required a second time as the update will run autoload
rm -rfv app/code/<vendor package>
bin/magento cache:flush
bin/magento cache:clean
composer dump-autoload
rm -rfv generated/code var/di
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy en_US
bin/magento indexer:reindex
bin/magento maintenance:disable
cd ..
© www.soinside.com 2019 - 2024. All rights reserved.