我创建了新程序包,我想避免单独发布命令,我需要在程序包composer.json文件中包括发布命令。因此,在安装软件包时,应根据服务提供商的路径移动文件。
我尝试了以下方法,但是资产/文件未发布。
"scripts": {
"post-install-cmd": [
"php artisan vendor:publish --provider=\"<vendorname>\\<packagename>\\<Serviceprovider>\" --tag=public --force",
"php artisan migrate"
],
"post-update-cmd": [
"php artisan vendor:publish --provider=\"<vendorname>\\<packagename>\\<Serviceprovider>\" --tag=public --force",
"php artisan migrate"
]
}
但是直接运行如下所示的命令时,效果很好
php artisan vendor:publish --provider="<vendorname>\<packagename>\<Serviceprovider>"
请为此提供解决方案。
答案 0 :(得分:2)
您尝试手动使用以下代码。如果它返回了您需要的东西,那么您就走对了。否则,某些打字错误应由脚本命令执行。
composer run-script post-install-cmd
答案 1 :(得分:0)
Composer不支持除根级别的脚本以外的自动运行的脚本。这是somewhat contested, but doesn't look like it's going to change any time soon。
您最好的选择可能是在自述文件中手动运行命令/指示用户手动运行命令:composer run-script post-install-cmd -d ./vendor/[name]/[package]
答案 2 :(得分:0)
也许您应该尝试在命令之前使用@,并且我建议您在“ post-autoload-dump”部分尝试编写命令。对我来说这是工作。
"scripts": {
"post-autoload-dump": [
"@php artisan vendor:publish --provider='<vendorname>\\<packagename>\\<Serviceprovider>' --tag=public --force",
"@php artisan migrate"
]
}