我对作曲家状态命令的行为感到困惑,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
答案 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