作曲家状态不显示本地更改,作曲家更新不会重新生成包

时间:2018-03-24 11:32:13

标签: php composer-php

我对作曲家状态命令的行为感到困惑,composer help说:

status               Shows a list of locally modified packages.

所以,我开始一个新的空项目并需要一些包:

~/project$ composer require mustache/mustache
Using version ^2.12 for mustache/mustache
./composer.json has been created
  - Installing mustache/mustache (v2.12.0): Loading from cache
Writing lock file
Generating autoload files

让我们做一些更改(从该软件包中删除一个文件并更改另一个文件)并让我们再次运行composer status

~/project$ rm vendor/mustache/mustache/README.md 
~/project$ echo '// Some change' >> vendor/mustache/mustache/src/Mustache/Engine.php 
~/project$ composer status
No local changes

它说没有局部变化。我期待作曲家状态告诉我 README.md 已被删除且 Engine.php 已更改。

如果我运行作曲家更新,则没有任何反应:

~/project$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
~/project$ ls vendor/mustache/mustache/README.md
ls: cannot access vendor/mustache/mustache/README.md: No such file or directory

我知道恢复原始软件包的唯一方法是删除vendor / dir并再次运行 composer install

为什么作曲家状态不会显示本地更改,以及为什么编辑器更新无法还原原始包?我使用的是composer 1.6.3

2 个答案:

答案 0 :(得分:2)

composer status仅支持从源安装的软件包,而不支持从已下载的ZIP文件安装的软件包。这也是Composer无法执行包更新的原因(即无法检测来自dist repo的包中的任何更改。)

在Composer GitHub repo上已经有一个问题:https://github.com/composer/composer/issues/5500

答案 1 :(得分:0)

即使它似乎没有实现,它也认为它现在可以工作。在RewriteEngine ON RewriteCond %{HTTP_HOST} ^(?:www\.)(domain[123])\.com [NC] RewriteCond %{REQUEST_URI} ^/?$ REwriteRule ^(.*)$ https://www.domain4.com/music/%1/ [NE,L] RewriteCond %{HTTP_HOST} ^(?:www\.)(domain[123])\.com [NC] RewriteCond %{REQUEST_URI} ^/(about)\.php/?$ REwriteRule ^(.*)$ https://www.domain4.com/%1/%2/ [NE,L] 期间,作曲者使用后缀composer status创建特殊的结帐,以比较版本:

_compare