gri*_*rim 13 bash composer-php
尝试在Composer post install/update挂钩中运行bash脚本时出现以下错误:
> post-install.sh
sh: 1: post-install.sh: not found
Script post-install.sh handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output: sh: 1: post-install.sh: not found
Run Code Online (Sandbox Code Playgroud)
原始composer.json
可以工作,但更新后安装/更新命令以便在两个地方运行真的很烦人.
{
"require": {
"twbs/bootstrap": "3.3.5"
...
...
},
"scripts": {
"post-install-cmd": [
"mkdir -p _libraries",
"cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/",
...
...
],
"post-update-cmd": [
"mkdir -p _libraries",
"cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/",
...
...
]
}
}
Run Code Online (Sandbox Code Playgroud)
根据Composer文档:
用Composer的术语表示,脚本可以是PHP回调(定义为静态方法),也可以是任何命令行可执行命令.
所以我composer.json
应该能够这样工作:
想要composer.json
{
"require": {
"twbs/bootstrap": "3.3.5"
...
...
},
"scripts": {
"post-install-cmd": [
"post-install.sh"
],
"post-update-cmd": [
"post-install.sh"
]
}
}
Run Code Online (Sandbox Code Playgroud)
post-install.sh
可由每个人(0775
)执行,并与composer.json位于同一目录中
#!/bin/bash
mkdir -p _libraries
cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/
...
...
Run Code Online (Sandbox Code Playgroud)
Wir*_*one 12
实现单任务定义的其他方法是引用脚本:
{
"require": {
"twbs/bootstrap": "3.3.5"
...
},
"scripts": {
"your-cmd": [
"mkdir -p _libraries",
"cp -r vendor/twbs/bootstrap/dist _libraries/bootstrap/",
...
],
"post-install-cmd": [
"@your-cmd",
...
],
"post-update-cmd": [
"@your-cmd",
...
]
}
}
Run Code Online (Sandbox Code Playgroud)