我正在为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
在软件包安装之后,一切似乎都很好,但文件没有被复制,也没有显示错误。
感谢您的帮助。
答案 0 :(得分:0)
有关脚本的文档,请参阅https://getcomposer.org/doc/articles/scripts.md。最相关的部分是:
注意:只有根软件包
composer.json
中定义的脚本才有 执行。如果根包的依赖项指定了它自己的依赖项 脚本,Composer不会执行那些额外的脚本。
因此,您无法在模块中定义任何脚本。有一个bug report,但作曲家的维护者不是执行依赖脚本的朋友