Composer脚本不再运行

时间:2016-04-26 07:25:31

标签: composer-php

所以我们的网站有作曲家设定, 在获得包之后我们运行一些命令。

"scripts": {
    "post-install-cmd": [
        "php -r \"shell_exec('cp -rf sourcefiles/. source/.');\"",
        "php -r \"shell_exec('rm -rf sourcefiles');\""
    ]
}

这些运行发现版本2016-02-24_11-44-07-45f6b37

但是,当我运行自我更新程序以获取最新版本时,即使没有任何改变,它也会对代码进行制动并且不再有效。

这令人担忧,因为这意味着我们无法再更新我们的作曲家。知道为什么会破坏我们做错了吗?

非常感谢。

2 个答案:

答案 0 :(得分:4)

github上的某个人告诉了这个问题,

所以只运行“post-install-cmd”上的脚本,这在1.0之前有效,现在需要在“post-install-cmd”和“post-update-cmd”上运行脚本,如果存在锁文件则运行更新命令。

所以代码现在看起来像这样:

"scripts": {
    "post-install-cmd": [
        "cp -rf sourcefiles/. source/.", 
        "rm -rf sourcefiles"
    ],
    "post-update-cmd": [
        "cp -rf sourcefiles/. source/.", 
        "rm -rf sourcefiles"
    ]
}

感谢您帮助删除PHP依赖

答案 1 :(得分:1)

关于你的脚本的有趣之处是:真正的shell命令是cp -rf sourcefiles/. source/.,你将它包装成对PHP函数shell_exec()的调用,因为没有帮助就无法调用这个函数在PHP中,您将此源代码传递给shell上的PHP。

替代脚本建议:

"scripts": {
    "post-install-cmd": [
        "cp -rf sourcefiles/. source/.",
        "rm -rf sourcefiles"
    ]
}

但是,您必须提供有关错误的更多详细信息,您收到的任何消息等。