【发布时间】:2020-05-12 09:43:41
【问题描述】:
我正在将 Symfony 项目从 3.4 升级到 4.4.8。 Sensio Distribution Bundle 被 Flex 取代,因此我以这种方式更新了 composer.json 的脚本部分:
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
当我运行作曲家更新时,作曲家警告说命令被跳过:
跳过“cache:clear”(需要 symfony/console 运行)。
跳过“assets:install public”(需要 symfony/console 运行)。
查看 composer.lock,没有安装 symfony/console,因为 symfony/symfony 替换了 symfony/console。运行 composer req cli 没有帮助。我从 shell 运行 symfony 控制台命令(内部和自定义)没有问题
我正在运行 composer (1.10.6) 的最新稳定版本。有什么我想念的吗?
【问题讨论】:
-
升级 Symfony 的主要版本可能会很棘手,因为一些作曲家的理念通常会发生变化。我建议创建一个新的 4.4 项目,添加第三方包并使用生成的 composer.json 文件作为参考。
-
我可能会将此作为最后的选择,因为该项目相当大,但我还是很想拥有一个完整的“symfony 4.4 native”架构
-
为了清楚起见,我并不是明确建议重构整个项目。只是生成一个新的 composer.json 文件。