为什么在安装 composer 后 bin/console 脚本没有在 "bin" 中找到或重新创建?
Why isn't bin/console script found nor recreated in "bin" after composer install?
我改变了我的 composer.json 突然间,当我这样做时
rm -rf vendor/* && rm -rf bin/* && composer update
我在过程结束时收到错误消息,因为在文件夹 bin
中找不到 Symfony console
。当我从另一个项目手动复制它时它可以工作,但这不是解决方案。
报错信息如下:
....
- Installing symfony/test-pack (v1.0.6): Loading from cache
- Installing symfony/web-server-bundle (v4.3.6): Loading from cache
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 1
!! Could not open input file: ./bin/console
!!
Script @auto-scripts was called via post-update-cmd
错误很明显,因为 bin 文件夹确实包含指向其他脚本负载的符号链接,但不包含控制台脚本本身。
我尝试清除作曲家缓存,但没有任何区别。
如果我创建一个全新的空文件夹并将 composer.json
文件复制到那里,然后 运行 composer install
,一切都很好,console
脚本在 bin
文件夹,它应该在的位置。
有什么区别?
当我 运行 它稍后自动进行自动部署时,我如何确定控制台会在那里?
首先,您不应该删除 bin/console
脚本。这是您的应用程序的一部分,它相当于 public/index.php
但作为控制台入口点。
最有可能的是,该文件应保存在您的源代码存储库中。
因此,确保该文件在部署时存在的最佳方法是:不要删除它,它是源代码的一部分,应该保留。
文件是在 install
期间在空文件夹上创建的,因为 flex 配方在 install
期间执行,原因有两点:
- Flex 配方仅在安装期间执行,而不是在更新期间执行。
- The flex recipe for symfony/console 将复制整个
bin
目录以重新创建它,但不会覆盖现有目录。 (因此,如果您将此目录及其内容保留在您的存储库中,那么当您将项目部署到生产环境时,它不会被覆盖)。
我改变了我的 composer.json 突然间,当我这样做时
rm -rf vendor/* && rm -rf bin/* && composer update
我在过程结束时收到错误消息,因为在文件夹 bin
中找不到 Symfony console
。当我从另一个项目手动复制它时它可以工作,但这不是解决方案。
报错信息如下:
....
- Installing symfony/test-pack (v1.0.6): Loading from cache
- Installing symfony/web-server-bundle (v4.3.6): Loading from cache
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 1
!! Could not open input file: ./bin/console
!!
Script @auto-scripts was called via post-update-cmd
错误很明显,因为 bin 文件夹确实包含指向其他脚本负载的符号链接,但不包含控制台脚本本身。
我尝试清除作曲家缓存,但没有任何区别。
如果我创建一个全新的空文件夹并将 composer.json
文件复制到那里,然后 运行 composer install
,一切都很好,console
脚本在 bin
文件夹,它应该在的位置。
有什么区别?
当我 运行 它稍后自动进行自动部署时,我如何确定控制台会在那里?
首先,您不应该删除 bin/console
脚本。这是您的应用程序的一部分,它相当于 public/index.php
但作为控制台入口点。
最有可能的是,该文件应保存在您的源代码存储库中。
因此,确保该文件在部署时存在的最佳方法是:不要删除它,它是源代码的一部分,应该保留。
文件是在 install
期间在空文件夹上创建的,因为 flex 配方在 install
期间执行,原因有两点:
- Flex 配方仅在安装期间执行,而不是在更新期间执行。
- The flex recipe for symfony/console 将复制整个
bin
目录以重新创建它,但不会覆盖现有目录。 (因此,如果您将此目录及其内容保留在您的存储库中,那么当您将项目部署到生产环境时,它不会被覆盖)。