【发布时间】:2016-01-07 20:00:47
【问题描述】:
$ composer install 之后,一切顺利,但 composer.json 不见了(删除?)。
也就是说,composer.json 在composer install 之后将不再存在。
这很奇怪。
这是我的composer.json:
{
"repositories": [
{
"type": "composer",
"url": "http://wpackagist.org"
},
{
"type": "package",
"package": {
"name": "wordpress",
"type": "webroot",
"version": "4.4.1",
"dist": {
"type": "zip",
"url": "https://github.com/WordPress/WordPress/archive/4.4.1.zip"
},
"require": {
"fancyguy/webroot-installer": "1.0.0"
}
}
}
],
"require": {
"php": ">=5.3.0",
"wordpress": "4.4.1",
"fancyguy/webroot-installer": "1.0.0"
},
"extra": {
"webroot-dir": "./",
"webroot-package": "wordpress"
}
}
vendor 目录和composer.lock 仍然存在。
myMBP:testtt erwai$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing fancyguy/webroot-installer (1.0.0)
Loading from cache
- Installing wordpress (4.4.1)
Loading from cache
Writing lock file
Generating autoload files
myMBP:testtt erwai$ ls
composer.lock wp-blog-header.php wp-load.php
index.php wp-comments-post.php wp-login.php
license.txt wp-config-sample.php wp-mail.php
readme.html wp-content wp-settings.php
vendor wp-cron.php wp-signup.php
wp-activate.php wp-includes wp-trackback.php
wp-admin wp-links-opml.php xmlrpc.php
myMBP:testtt erwai$ ls composer.json
ls: composer.json: No such file or directory
myMBP:testtt erwai$ ls composer.lock
composer.lock
myMBP:testtt erwai$ ls vendor
autoload.php composer
- 操作系统:OS X 10.11.2
- PHP:5.5.30
- 作曲家:1.0-dev (64b0d721838cdceef679761c5cf69a0d070d14c9)
编辑
我认为这可能会在安装 wordpress 时发生。
由于wordpress是安装在根目录("webroot-dir": "./")的,所以好像清理了所有目录。
有什么想法吗?
【问题讨论】:
-
您应该在github.com/fancyguy/webroot-installer/issues 上将其报告为一个问题,因为它显然是该插件中的一个错误,它在安装时会清除目录。
-
插件只返回自定义文件夹(
$extra['webroot-dir'])。它的 Composer,提取到此文件夹中(覆盖内容)。当 root 成为目标时,插件可以/应该更具防御性并警告用户。 -
FileDownloader和VcsDownloader在下载前清空目录。我不确定如何优雅地处理非空目录,因为如果已经安装了以前的版本,那么它应该是非空的。
标签: php composer-php