使用Composer安装Laravel包而不更新依赖项。

9 浏览
0 Comments

使用Composer安装Laravel包而不更新依赖项。

我想在laravel 5.8中安装zizaco/entrust包,在他们的github页面上说要在composer.json文件中包含"zizaco/entrust": "5.2.x-dev",然后运行composer update命令。我按照下面的方式做了,并运行了composer update命令。

"require" : {
        "php" : "^7.1.3",
        "fideloper/proxy" : "^4.0",
        "laravel/framework" : "5.8.*",
        "laravel/tinker" : "^1.0",
        "laravel/ui" : "^1.2",
        "maatwebsite/excel" : "^3.1",
        "zizaco/entrust" : "5.2.x-dev"
    },

但是当安装zizaco/entrust包时,composer update命令会将所有包更新到最新版本(包括我在"require"字段中包含的这些包)。如果最新更新的包中存在一些编码错误,整个网站可能会崩溃。值得注意的是,在运行上述命令后,我在vendor文件夹下的许多文件夹中看到了本地git显示的更改,这意味着有一些包进行了更新,对吗?因此,建议运行composer install命令,以便这些依赖包不会更新到最新版本。

所以,在我的情况下,在composer.json的require字段中包含"zizaco/entrust": "5.2.x-dev"后,如果我运行composer install,它不会安装zizaco/entrust包。此外,如果我运行composer require zizaco/entrust 5.2.x-dev,它仍然会安装依赖包的最新版本。

那么,我该如何防止安装我在composer.json文件的require字段中包含的依赖包的最新版本,只安装zizaco/entrust包呢?

这样我的laravel 5.8网站就不会因为更新任何包到最新版本而出现故障代码或其他原因而崩溃。处理这种情况非常重要,因为我们需要根据laravel网站的各种需求安装包。

0
0 Comments

问题:在不更新依赖项的情况下,使用Composer安装Laravel包的原因和解决方法。

原因:在使用Composer安装Laravel包时,有两种选项:使用“composer require”来指定要安装的包,或者手动更新“composer.json”文件并使用“composer update [package]”。

解决方法1:使用“composer require”命令来安装指定的包,这将自动更新“composer.json”文件并安装指定版本的包,而不会更新其他依赖项。命令示例:composer require zizaco/entrust:5.2.x-dev

解决方法2:如果已经手动更新了“composer.json”文件,则需要运行“composer update”命令并指定要更新的包。如果指定了要更新的包,那么只会影响该包。当不指定要更新的包时,Composer将查找所有包的更新。命令示例:composer update zizaco/entrust

注意:使用“composer install”命令无法解决此问题。如果已经有一个“composer.lock”文件(因为你只是尝试添加一个新的包),“composer install”命令只会查看“composer.lock”文件并尝试安装其中定义的所有内容。这意味着,如果手动更新了“composer.json”文件并运行“composer install”命令,它不会安装你指定的新要求。

只有当没有“composer.lock”文件时,“composer install”命令才会尝试解决依赖关系并安装它们。

0
0 Comments

问题的原因是使用composer update命令会根据composer.json中的版本约束安装不同的版本,而composer install命令只会根据composer.lock中的确切版本进行安装。

解决方法是使用composer install命令代替composer update命令,或者使用composer require <package name>命令。

composer install命令会根据composer.lock中的确切版本进行安装,只会安装缺失的包。

composer update命令会根据composer.json中的版本约束安装不同的版本,这就是为什么会安装不同的版本。

因此,如果想要安装一个laravel包但不更新依赖项,可以使用composer install命令。

0
0 Comments

在使用Composer安装Laravel包时,如果不想更新依赖项,可以按照以下步骤进行操作。

首先,将要安装的包添加到composer.json文件中,然后运行以下命令:

composer install

composer install命令会检查新的包并安装它,同时还会检查其他包是否有过时的情况。

另外,可以直接在Composer中运行命令:

composer require package/name

例如,如果需要安装firebase包,可以在项目根目录下运行以下命令:

composer require firebase/php-jwt

通过终端安装新的包会自动将其添加到composer.json文件中,并且不会更新先前安装的包。

希望这对你有所帮助!

0