【问题标题】:Deploy Laravel Upgrade - Composer Update or Composer Install部署 Laravel 升级 - Composer 更新或 Composer 安装
【发布时间】:2018-08-17 14:37:55
【问题描述】:

我的生产应用是基于 Laravel 5.3 构建的。自从 Laravel 5.6 发布以来,我一直在升级我的 Laravel。这是我迄今为止在我的开发服务器中所做的:

  1. 浏览了 Laravel 站点的每次升级更改并使用 Git 比较工具,我添加了从 5.3

  2. 编辑了我的应用代码以反映更改。

  3. 运行composer update

  4. 将所有更改提交到 Git 存储库。

到目前为止一切都很好,因为它是一台开发机器。通常,当我将任何更新推送到生产服务器时,我只做git pull origin master,仅此而已。由于这是我在 Laravel 发布后对其进行的第一次升级,因此我担心在将新更新推送到生产服务器后,我是否在生产服务器中运行:composer updatecomposer install

我已经阅读了许多建议在生产服务器中使用composer install 的帖子,我通常在向我的 Laravel 添加新包时这样做。但是在这种情况下,由于它实际上是对所有核心文件的升级以及对现有软件包的更新,我仍然运行composer install 还是应该在这种情况下运行composer update?当我推送提交时,它还会从开发站点提交 composer.lock 文件。

有人可以帮我澄清一下吗?

【问题讨论】:

    标签: git laravel composer-php laravel-5.3 laravel-5.6


    【解决方案1】:

    您应该始终在生产环境中使用composer install 以及composer.lock 文件。

    如果你做 composer update 那么它可能会破坏你的应用程序,因为包的依赖关系可能已经改变了。

    在生产中也要确保你也放了你的 composer.lock 文件。 composer install 只会安装您 composer.lock 文件中的版本,因此您将在生产和开发中拥有相同的代码。

    你可以阅读更多关于

    https://getcomposer.org/doc/02-libraries.md#lock-file

    【讨论】:

    • 感谢您的确认。我想知道的是,当我目前有 Laravel 5.3 文件,然后 composer.lock 文件显示 laravel 5.6 和已经安装的第三方软件包的新版本时,composer install 是否删除旧的软件包版本和文件,只安装新的?
    • @Neel 是的,你是对的,它会安装新的,但你可以将 composer.lock 文件保留在提交历史中
    • 太棒了。这对我有帮助。让我有信心继续部署这些更改。非常感谢@laravel levaral
    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    相关资源
    最近更新 更多