首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Heroku推送响应CMS :没有找到“composer.lock”

向Heroku推送响应CMS :没有找到“composer.lock”
EN

Stack Overflow用户
提问于 2015-12-10 09:57:53
回答 1查看 7.1K关注 0票数 0

我想在Heroku上托管CMS,所以我做了:

  1. respondcms库的git clone
  2. 在该文件夹中创建heroku
  3. git push heroku master

在终端中总是会出现以下错误:

代码语言:javascript
复制
remote: ----->PHP app detected
remote:
remote:  !     ERROR: Your 'composer.json' lists dependencies inside 'require',
remote:        but no 'composer.lock' was found. Please run 'composer update' to
remote:        re-generate 'composer.lock' if necessary, and commit it into your
remote:        repository. For more information, please refer to the docs at
remote:        https://devcenter.heroku.com/articles/php-support#activation
remote:
remote:
remote:  !     Push rejected, failed to compile PHP app
remote:
remote: Verifying deploy...
remote:
remote: !       Push rejected to app-name

我运行了composer update,这很好,而且文件夹中还有一个composer.lock文件。

为什么这不管用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 12:51:36

composer.lock文件不仅必须在本地存在,还必须提交。这样,当你推到Heroku的时候,它就会被包括在内。

试着做这样的事情:

  • git add composer.lock
  • git commit使用像Add Composer lock file这样的消息
  • git push heroku (或任何您的遥控器被称为)

原因是composer.json通常以某种模糊的方式指定依赖项,例如“最新的1.2.x发行版是什么”或“master分支上的最新提交”。您可能会想象,根据安装依赖项的时间,您和我可能会得到不同的结果。

composer.lock文件的工作是以更严格的方式锁定这些依赖项。如果您安装了一个库的最新版本1.2.x,那么它的精确版本将记录在composer.lock中,例如“Version1.2.2 at Git散列1234abc”。

通常,除非您有意更新库,否则最好使用composerinstall,而不是composer update。前者使用来自锁文件的确切版本,不更新任何内容。这样,我们就可以更有信心地使用相同的库。后者更新新版本并更改锁文件。

我从未在PHP中使用过Heroku,但它希望安装锁文件中列出的确切版本是有意义的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34198713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档