问题
I have composer project without code but with list of dependencies. I want to run composer install
for download all dependent packages and run some bash commands into each one after it.
My composer.json:
{
"name": "testmain/testmain",
"description": "testmain",
"minimum-stability": "dev",
"repositories": [{
"type": "package",
"package": {
"name": "testsub/testsub1",
"description": "testsub/testsub1",
"version": "master",
"source": {
"url": "https://github.com/testsub/testsub1",
"type": "git",
"reference": "master"
},
"scripts": {
"post-install-cmd": [
"make",
"make install"
]
}
}
},
{
"type": "package",
"package": {
"name": "testsub/testsub2",
"description": "testsub/testsub2",
"version": "master",
"source": {
"url": "https://github.com/testsub/testsub2",
"type": "git",
"reference": "master"
},
"scripts": {
"post-install-cmd": [
"make",
"make install"
]
}
}
}
],
"require": {
"testsub/testsub1": "master",
"testsub/testsub2": "master"
}
}
The problem is in running scripts
sequence of nested packages, all scripts are ignored by composer.
Thanks!
回答1:
Unfortunately, it is not possible to execute any non-ROOT scripts (in meaning non-root composer.json
), as mentioned in documentation:
Note: Only scripts defined in the root package's composer.json are executed. If a dependency of the root package specifies its own scripts, Composer does not execute those additional scripts.
来源:https://stackoverflow.com/questions/46769237/composer-run-script-of-nested-packages