使用composer将文件从包复制到项目根目录

时间:2018-02-14 00:26:53

标签: php composer-php packagist

我正在为Packagist编写一个包,我正在面对Composer的问题。我需要在安装后将文件从我的包中复制到项目根目录,但在安装包后没有任何事情发生。

在阅读了Composer文档之后,我发现我应该将一个脚本放在post-install-cmd之后的事件中,在scripter.json文件中。

所以,我把它添加到我的包composer.json文件

    "scripts": {
        "post-install-cmd": [
            "php -r \"copy('vendor/myvendor/mypackage/myfile', 'myfile');\""
        ]
    }

要安装我正在执行的程序包

$ composer require myvendor/mypackage --dev

在软件包安装之后,一切似乎都很好,但文件没有被复制,也没有显示错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

有关脚本的文档,请参阅https://getcomposer.org/doc/articles/scripts.md。最相关的部分是:

  

注意:只有根软件包composer.json中定义的脚本才有   执行。如果根包的依赖项指定了它自己的依赖项   脚本,Composer不会执行那些额外的脚本。

因此,您无法在模块中定义任何脚本。有一个bug report,但作曲家的维护者不是执行依赖脚本的朋友