laravel的composer require报错:Installation failed, reverting ./composer.json to its original content.

一、前言

      查看laravel文档的时候,看到Laravel Passport 实现 API 认证这个是真不错,但是本地实际安装的时候,一直安装不上,报错信息如标题所述,这就很烦人了,下面记录一下解决过程已经解决方案。

二、解决过程

在安装Passport 的第一步就开始报错;

composer require laravel/passport

关于Passport:http://laravelacademy.org/post/8298.html

1、composer版本不够?

怀疑是自己本地composer版本的问题,决定更新一下:

composer self-update 

      将 Composer 自身升级到最新版本,只需要运行 self-update 命令。它将替换你的 composer.phar 文件到最新版本。更新之后尝试安装失败。

2、难道是下载的版本太高?

composer require laravel/passport (安装最新版本)
composer require laravel/passport ~4.0(安装4.0版本)

用低版本试试,一如既往的报错。

3、难道是没有稳定版本,必须要兼容开发版本?

在composer.json文件的最下面新增:

 "minimum-stability": "dev" 

这部分大家可以参考链接:https://www.cnblogs.com/XACOOL/p/5627444.html

就算兼容开发版本还是不行。

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

      按照上面的方案执行一遍,发现已经成功安装了Passport,看来十有八九就是composer.lock文件没更新的问题了。这里也可能是我的问题,我没有直接在composer.json中直接修改,然后用composer update 试试,实在是失误。

四、第二种解决方案(我自己没试)

1、如果手动更新了composer.json文件,需要autoload:

    composer dump-autoload

此处参考链接:https://segmentfault.com/q/1010000006974110
composer autoload的文档地址:https://docs.phpcomposer.com/03-cli.html#dump-autoload

2、执行composer update命令更新依赖

composer installcomposer update 的区别:

https://blog.csdn.net/sanbingyutuoniao123/article/details/52025565

深度好文:Composer入门 https://www.cnblogs.com/XACOOL/p/5627444.html

      关于第二种方案,我自己也没来得及试试,只是查了一些资料,感觉可能会可以。大家可以尝试下试试,一起进步!

end

你可能感兴趣的:(laravel)