Jul*_*ian 83 php zend-framework2 composer-php
我正在使用ZF2骨架应用程序,它有一个.gitignore,可以防止外部库被提交给git.在调试的过程中,我喜欢在图书馆的源代码中随处更改内容,以了解工作原理.如果这些是版本控制的,那么很容易将它们恢复到原始状态.
我如何强制Composer重新安装一个特定的框架,以便我可以再次获得一个新的 - 未修改的副本?
PS:请不要建议删除.gitignore文件,因为它出于某种原因; 它阻止我的第三方库进入我的应用程序的存储库.我总是可以在自动部署期间安装它们.
Zor*_*ran 144
只需清除您的供应商文件夹
rm -rf vendor/*
Run Code Online (Sandbox Code Playgroud)
Bra*_*sen 47
您可以使用--prefer-sourcecomposer 的标志来检查具有VCS信息的外部包(如果有的话).您可以简单地恢复到原始状态.此外,如果您发出composer update命令,composer将检测您在本地所做的任何更改,并询问您是否要丢弃它们.
您的.gitignore文件与您的根项目(ZF2骨架)相关,它会阻止供应商目录(您的第三方库所在的位置)提交到您自己的VCS.ignore文件与供应商的git repo无关.
cwe*_*ske 40
相关功能请求为https://github.com/composer/composer/issues/3112
2021 年 5 月,“重新安装”命令补丁已合并: https: //github.com/composer/composer/pull/9915 - 它在 Composer 版本 2.1.0 及所有更高版本中可用。
该reinstall命令已合并并可用,因为2.1.0:
composer reinstall <package-name> # Removes and installs the package.
Run Code Online (Sandbox Code Playgroud)
Yer*_*rke 23
我不想删除vendor/目录中的所有包,所以我这样做是这样的:
rm -rf vendor/package-i-messed-upcomposer install 再次Att*_*lop 21
我做了什么:
composer update --prefer-source vendor/library-name它再次获取库以及它的git repo
小智 8
重新安装依赖项。之前在 Linux 上删除 vendor 文件夹(手动)或通过 rm 命令(如果您在项目文件夹中,确定):
rm -rf vendor/
composer update -v
Run Code Online (Sandbox Code Playgroud)
https://www.dev-metal.com/composer-problems-try-full-reset/
您可以使用&&在一个cli命令中执行它:
composer remove vendor/package && composer require vendor/package:version
Run Code Online (Sandbox Code Playgroud)
通过命令删除现有包:
composer remove vendor/package
Run Code Online (Sandbox Code Playgroud)
这将从 /vendor 中删除包文件夹,从 composer.json 中删除行以及从 composer.lock 中删除包的完整记录,删除未使用的依赖项,而不删除其他包使用的依赖项
然后使用命令安装首选:
composer require vendor/package:version
Run Code Online (Sandbox Code Playgroud)
这将通过向 composer.json 添加行、向 composer.lock 和所有需要的依赖包添加记录以正确方式安装所需版本的包,如果有一个包在多个包中使用,Composer 将尝试安装适合的版本都使用包。如果它不能解决这个问题,它将崩溃并显示相应的错误消息
使用 Composer 安装、卸载和更新模块主题等:https : //modulesunraveled.com/drupal-8-composer-and-configuration-management/installing-and-uninstalling-modules-composer