我使用 Symfony5 開發了一個應用程式并嘗試在 Heroku 上部署,但在部署時出現錯誤。這是構建日志:
WARNING: Your 'composer.lock' is out of date!
The 'composer.lock' file in your project is not up to date with
the main 'composer.json' file. This may result in installation
of incorrect packages or package versions.
The lock file is required in order to guarantee reliable and
reproducible installation of dependencies across systems and
deploys. It must always be kept in sync with 'composer.json'.
Whenever you change 'composer.json', ensure that you perform
the following steps locally on your computer:
1) run 'composer update'
2) add all changes using 'git add composer.json composer.lock'
3) commit using 'git commit'
Ensure that you updated the lock file correctly, and that you ran 'git add' on both files, before deploying again.
Please remember to always keep your 'composer.lock' updated in lockstep with 'composer.json' to avoid common problems related to dependencies during collaboration and deployment.
-----> Installing dependencies...
Composer version 2.1.9 2021-10-05 09:47:38
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
WARNING: An error occurred during a database connection or query
ERROR: Dependency installation failed
The 'composer install' process failed with an error. The cause may be the download or installation of packages, or a pre- or post-install hook (e.g. a 'post-install-cmd' item in 'scripts') in your 'composer.json'.
Typical error cases are out-of-date or missing parts of code, timeouts when making external connections, or memory limits. Check the above error output closely to determine the cause of the problem, ensure the code you're pushing is functioning properly, and that all local changes are committed correctly.
REMINDER: the following warnings were emitted during the build;
check the details above, as they may be related to this error:
- Your 'composer.lock' is out of date!
- An error occurred during a database connection or query
Push rejected, failed to compile PHP app.
Push failed
所以我嘗試在終端中運行 composer update 但收到此錯誤訊息:
Loading composer repositories with package information
Restricting packages listed in "symfony/symfony" to "5.3.*"
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires phpunit/phpunit 4.7.7 -> satisfiable by phpunit/phpunit[4.7.7].
- phpunit/phpunit 4.7.7 requires symfony/yaml ~2.1|~3.0 -> found symfony/yaml[v2.1.0, ..., v2.8.52, v3.0.0, ..., v3.4.47] but it conflicts with your root composer.json require (5.3.*).
Problem 2
- Root composer.json requires phpspec/phpspec 2.2.1 -> satisfiable by phpspec/phpspec[2.2.1].
- phpspec/phpspec 2.2.1 requires symfony/console ~2.3 -> found symfony/console[v2.3.0, ..., v2.8.52] but it conflicts with your root composer.json require (5.3.*).
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
我知道與 phpunit、composer.json 和 .lock 檔案存在沖突,但找不到如何解決這個問題。請問有什么幫助嗎?
uj5u.com熱心網友回復:
我解決了這個問題。問題是 composer.lock 與 composer.json 不一致,所以我執行了以下步驟:
洗掉 composer.lock 檔案:
rm -rf composer.lock更新作曲家(它會自動創建 composer.lock 檔案):
composer update驗證 composer.lock 具有相同的依賴版本并在必要時更新
保存并推送修改到 git 和 heroku :
git commit -m "Update composer files" git push git push heroku`
uj5u.com熱心網友回復:
PHPUnit 4.7.7 已經過時了(于 2015 年 7 月發布),其依賴項與需要 Symfony 5.3 發生沖突。您應該從 PHAR 安裝 PHPUnit(這是推薦的方式),或者將其升級到更新的版本
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/345188.html
上一篇:設定顯示對話框設定圖示
