运行 Laravel Vapor 部署时出现命令“COMPOSER_MIRROR_PATH_REPOS=1 Composer install”失败错误

问题描述 投票:0回答:4

我正在使用最新的 Laravel 7 开发一个应用程序,并使用 Vapor 部署到 AWS。我使用的是 Windows 10 环境。

运行以下命令部署到暂存时

vendor/bin/vapor deploy
我收到以下错误。

In Process.php line 252:

  The command "COMPOSER_MIRROR_PATH_REPOS=1 composer install" failed.

  Exit Code: 1(General error)

  Working directory: C:\Users\Matthew Wallace\Development\web\615ioDemos/.vap
  or/build/app

  Output:
  ================


  Error Output:
  ================
  'COMPOSER_MIRROR_PATH_REPOS' is not recognized as an internal or external c
  ommand,
  operable program or batch file.
laravel composer-php laravel-vapor
4个回答
3
投票

此问题的解决方案是打开vapor.yml并通过删除“COMPOSER_MIRROR_PATH_REPOS=1”来修改

build:
部分中的composer安装行以进行登台和生产

这就是我的构建部分现在的样子。

build:
    - 'composer install'
    - 'php artisan event:cache'
    - 'npm ci && npm run dev && rm -rf node_modules'

3
投票

上面的答案只是部分修复。(@mattwallace 回答)

整个故事:

  1. 删除
    vapor.yml中的
    COMPOSER_MIRROR_PATH_REPOS=1
  2. config下添加composer.json
    "COMPOSER_MIRROR_PATH_REPOS": true

更多详情:

在 Win 上工作时将数据库附加到应用程序时,您可能会遇到问题(至少我做到了:P)。

问题在于解决路径的策略。默认情况下,策略设置为“symlink” - 我认为更合适的方法是将其设置为“mirror”,因为我们在本地构建项目并将内容移动到不同的主机上(文件系统结构等)。 ).

上面的错误只是终端/powershell不知道如何处理命令行中的第一个参数 -

COMPOSER_MIRROR_PATH_REPOS
- 它仍然需要设置。

有关参数的更多信息这里

在文档中您可以找到:

您可以设置多个环境变量来覆盖某些设置。只要有可能,建议在composer.json 的配置部分中指定这些设置。

就这样:

"config": {
    "optimize-autoloader": true,
    "preferred-install": "dist",
    "sort-packages": true,
    "COMPOSER_MIRROR_PATH_REPOS": true
},

2
投票

由于我们的团队也面临这个问题,并且我们需要在多个项目中使用,所以我们制作了一个可以在包中访问的命令。 只需安装并进行简单的设置即可

https://packagist.org/packages/stephenkhoo/laravel-vapor-deploy-helper

composer require stephenkhoo/laravel-vapor-deploy-helper

更新你的vapor.yml
build:
    - 'COMPOSER_MIRROR_PATH_REPOS=1 composer install --no-dev'

build:
    - 'php artisan build:composer-mirror'
    - 'composer install --no-dev'

0
投票

以下行导致问题:

'COMPOSER_MIRROR_PATH_REPOS=1 composer install --no-dev'

这是一个可以在

bash
上运行的脚本。它基本上设置一个环境变量,然后使用一些选项和参数调用
composer
。如果您的操作系统是 Windows,则需要
cmd
中的对应语法,如下所示:

'set COMPOSER_MIRROR_PATH_REPOS=1 & composer install --no-dev'
© www.soinside.com 2019 - 2024. All rights reserved.