我正在使用最新的 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.
此问题的解决方案是打开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'
上面的答案只是部分修复。(@mattwallace 回答)
整个故事:
vapor.yml中的
COMPOSER_MIRROR_PATH_REPOS=1
"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
},
由于我们的团队也面临这个问题,并且我们需要在多个项目中使用,所以我们制作了一个可以在包中访问的命令。 只需安装并进行简单的设置即可
https://packagist.org/packages/stephenkhoo/laravel-vapor-deploy-helper
composer require stephenkhoo/laravel-vapor-deploy-helper
从
更新你的vapor.ymlbuild:
- 'COMPOSER_MIRROR_PATH_REPOS=1 composer install --no-dev'
到
build:
- 'php artisan build:composer-mirror'
- 'composer install --no-dev'
以下行导致问题:
'COMPOSER_MIRROR_PATH_REPOS=1 composer install --no-dev'
这是一个可以在
bash
上运行的脚本。它基本上设置一个环境变量,然后使用一些选项和参数调用 composer
。如果您的操作系统是 Windows,则需要 cmd
中的对应语法,如下所示:
'set COMPOSER_MIRROR_PATH_REPOS=1 & composer install --no-dev'