composer require报错:Installation failed, reverting ./composer.json to its original content.
一、前言
查看laravel文档的时候,看到Laravel Passport 实现 API 认证这个是真不错,但是本地实际安装的时候,一直安装不上,报错信息如标题所述,这就很烦人了,下面记录一下解决过程已经解决方案。
二、解决过程
在安装Passport 的第一步就开始报错;
composer require laravel/passport
1
关于Passport:http://laravelacademy.org/pos...
1、composer版本不够?
怀疑是自己本地composer版本的问题,决定更新一下:
composer self-update
1
将 Composer 自身升级到最新版本,只需要运行 self-update 命令。它将替换你的 composer.phar 文件到最新版本。更新之后尝试安装失败。
2、难道是下载的版本太高?
composer require laravel/passport (安装最新版本)
composer require laravel/passport ~4.0(安装4.0版本)
1
2
用低版本试试,一如既往的报错。
3、难道是没有稳定版本,必须要兼容开发版本?
在composer.json文件的最下面新增:
"minimum-stability": "dev"
1
这部分大家可以参考链接:https://www.cnblogs.com/XACOO...
就算兼容开发版本还是不行。
4、难道是我用的composer源不对,文件被墙了?
由于下载安装完成composer 后 默认是国外镜像,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。所以建议使用国内的composer源
参考链接;https://pkg.phpcomposer.com/
换成国内的源还是不行。
三、解决方案
在composer.json上面下功夫没用,那么会不会是composer.lock的原因呢?
1、关于composer.lock
使用composer安装php组件时候你会发现创建了一个composer.lock文件,这是做什么的呢?
composer.lock是记录当前所有安装的php组件的版本,如果多人协作开发需保持下载的php组件的版本一样减少不必要的麻烦,那么需要把composer.lock加入版本控制当中,比如使用git或者svn那么你就需要把它加入把版本控制当中。反之则不用。
需要注意的是,当composer install进行组件依赖时不会进行更新composer.lock文件除非引入了新的组件到composer.json中,如果想更新请使用composer update会把组件更新到最新稳定版本同时会更新最composer.lock文件。
2、删除composer.lock试试
1、把需要引入的包写入composer.json中
(写入的话,就不需要composer require了,直接composer update 即可。)
2、删除composer.lock
3、composer clearcache 清除缓存
4、composer update 更新依赖(重新生成composer.lock)
1
2
3
4
5
按照上面的方案执行一遍,发现已经成功安装了Passport,看来十有八九就是composer.lock文件没更新的问题了。这里也可能是我的问题,我没有直接在composer.json中直接修改,然后用composer update 试试,实在是失误。
四、第二种解决方案(我自己没试)
1、如果手动更新了composer.json文件,需要autoload:
composer dump-autoload
1
此处参考链接:https://segmentfault.com/q/10...
composer autoload的文档地址:https://docs.phpcomposer.com/...
2、执行composer update命令更新依赖
composer install 和 composer update 的区别:
https://blog.csdn.net/sanbing...
深度好文:Composer入门 https://www.cnblogs.com/XACOO...
关于第二种方案,我自己也没来得及试试,只是查了一些资料,感觉可能会可以。大家可以尝试下试试,一起进步!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。