如果缺少.env
,请停止运行编译器安装
composer.json
代码段"scripts": {
"pre-install-cmd": "[[ -a .env ]] || echo '.env missing. please create .env' 1>&2 && exit 1;"
},
$ composer install
.env missing. please create .env
Script [[ -a .env ]] || >&2 echo '.env missing. please create .env' && exit 1; handling the pre-install-cmd event returned with an error
[RuntimeException]
Error Output: .env missing. please create .env
与上述相同但没有粗糙,特别是立即回声的&多余.env missing. please create .env
如何防止作曲家立即回显该字符串?甚至可以使用-q
开关
答案 0 :(得分:0)
我想知道这应该如何运作?
您要求Composer运行您的脚本。该脚本创建输出,显示。
现在该脚本的返回代码表示错误情况。其余的由Composer决定。最好通知用户哪个脚本失败了(这直接解释了回显输出之后的行),因为脚本不必回显任何内容,并且您可以自由地在那里运行多个脚本行。
然后一般的Composer错误显示再次出现,再次声明错误条件产生了一些输出。
现在我想知道你想抑制什么。那第一行?然后不要回应任何事情。
以后的线路?没有运气,这就是Composer一般处理错误的方式。
退一步看大局,我问为什么不应该允许Composer安装依赖项? Composer不需要该文件 - 如果您的代码需要它,它应该为用户提供一种更简单的方法来创建该文件,或检查它是否缺失并以合理的默认值假设作出反应,或者拒绝工作 - 这将使您能够更好地控制显示错误消息的情况。