是否可以在禁止软件包卸载(Drupal 8)的同时运行composer install?

我正在使用Drupal-8,当需要使用composer并使用Drupal安装软件包时,它需要以下工作流程,但随后又从Drupal卸载了该软件包,并由另一位开发人员通过composer将其删除了。

  1. 更新我的本地存储库
  2. 运行composer来安装或更新composer.json中的软件包(并且仅安装/更新)
  3. 在我的CMS中运行脚本以处理软件包的安装/卸载详细信息(取决于软件包的存在情况)
  4. 运行composer以卸载从composer.json删除的所有软件包

第4步可能只是composer install,但是我想知道在第2步中是否有抑制打包卸载的方法?否则,Drupal-8无法完成第3步,因为已删除的Composer软件包中嵌入了Drupal卸载说明。

yshvip 回答:是否可以在禁止软件包卸载(Drupal 8)的同时运行composer install?

installupdate的选项就在这里。

不,没有选项可运行两个命令,并且仅执行其一半的工作。删除不需要的依赖项是作曲家要做的一部分。

如果您想要这种行为,则必须自己编写代码。

,

我已经用Drupal标记了它,因为它可能与其他系统无关。

我目前的解决方案是捕获在Composer安装后运行的脚本中的删除,该脚本将重新安装已删除的模块。稍后git checkout恢复composer的状态。*,然后composer install再次运行。所以顺序是:

  1. 更新我的本地存储库
  2. 运行composer install并过滤输出以删除ANSI代码,并拔出以“-删除”开头的行,然后拔出以“删除”开头的行,并在名为{的脚本中将它们重新格式化为composer require命令{1}}:
composer.reinstall.sh
  1. 运行生成的脚本:composer install | tee >(perl -pe 's/\e\[[0-9;]*m//g'|grep -B1 "^Deleting"|grep "^ - Removing"| perl -pe 's/^ - Removing ([^ ]+) \(([^\)]+)\)/composer require \1:\2/g' > composer.reinstall.sh)
  2. 在我的CMS中运行脚本(sh composer.reinstall.shdrush cim BTW)以处理软件包的安装/卸载详细信息(取决于软件包的存在)
  3. 重新初始化作曲家文件:drush updb
  4. 运行rm composer.reinstall.sh; git checkout composer.*以卸载从composer install删除的所有软件包
本文链接:https://www.f2er.com/3109238.html

大家都在问