我正在尝试让安装后和更新后的脚本在Composer包中工作。以下是composer.json
文件的摘录:
"autoload": {
"psr-4": {
"App\": "src/"
}
},
"scripts": {
"post-update-cmd": [
"App\Install\ComposerScripts::postUpdate"
],
"post-install-cmd": [
"App\Install\ComposerScripts::postInstall",
"./test.sh"
]
}
这里是ComposerScripts.php
:
<?php
namespace AppInstall;
use ComposerScriptEvent;
class ComposerScripts
{
public static function postInstall(Event $event)
{
$io = $event->getIO();
if ($io->askConfirmation('Install Mecab? ', false)) {
return true;
}
exit;
}
public static function postUpdate(Event $event)
{
$event->getIO()->write("Working!");
return true;
}
}
和文件test.sh
:
#!/bin/sh
echo Working
如果我用composer run-script
测试ComposerScripts方法,并且test.sh
脚本运行良好,那么ComposerScript方法就可以工作,但当我安装或更新包时,什么都不会发生。没有输出,没有错误,什么都没有。知道这里发生了什么吗?
尝试
"autoload": {
"psr-4": {
"App\": "src/"
}
},
"scripts": {
"post-update-cmd": [
"App\Install\ComposerScripts::postUpdate"
],
"post-install-cmd": [
"App\Install\ComposerScripts::postInstall",
"bash test.sh"
]
}