
composerのscriptsで作業効率化
コマンドを短縮する
いくつかのオプションを付けたコマンドを定義することでコマンドを短縮できます。
例:
"scripts": {
"phpcs": [
"phpcs --standard=./phpcs.xml"
],
"phpmd": [
"phpmd ./app/,./config,./database/factories,./database/seeds,./routes/,./tests/ text phpmd.xml"
],
}
定義したコマンドは composer + コマンド名 で実行できます。
composer phpmd
複数のコマンドをまとめる
複数のコマンドをまとめて一つのコマンドにすることが可能です。
例:
"scripts": {
"ncu": [
"ncu -u",
"yarn --audit install",
],
"ide": [
"php artisan ide-helper:generate --ansi",
"php artisan ide-helper:models --write --ansi",
"php artisan ide-helper:meta --ansi"
],
}
定義したコマンドを @ + コマンド名で再利用できます。
例:
"scripts": {
"lint": [
"@phpcs",
"@phpmd",
],
"phpcs": [
"phpcs --standard=./phpcs.xml"
],
"phpmd": [
"phpmd ./app/,./config,./database/factories,./database/seeds,./routes/,./tests/ text phpmd.xml"
],
}
composer lint
定義したコマンドを確認する
composer list
定義したコマンドに説明を追加する
scripts-descriptions で composer list で表示される説明を変更できます。
"scripts-descriptions": {
"lint": "Lint!!"
}
その他
コマンドイベント
install や update の後などに動作させるスクリプトを定義できます。
if で分岐
ただのシェルスクリプトなので if で分岐させることもできます。
例えばコマンドが使用できるときだけ動作させるみたいなことができます。
"scripts": {
"post-update-cmd": [
"if [[ -n $(php artisan list --raw | grep 'ide-helper:generate') ]] && [[ -f .env ]]; then composer ide; fi",
],
"ide": [
"php artisan ide-helper:generate --ansi",
"php artisan ide-helper:models --write --ansi",
"php artisan ide-helper:meta --ansi"
],
}
Makefile で 動的にコマンドを変える方法
