[Composer]scripts定義で、別ディレクトリに移動してコマンドを実行する

カテゴリ: 未分類

PHPパッケージ管理ツールのComposerでは、ファイルcomposer.jsonへscriptsを定義することで、以下のようスクリプトのエイリアスを定義することができます。

{
    "reauire" {
        ...
    },
    "scripts": {
        "start": "php -S localhost:8080 -t public public/index.php"
    }
}

上記の場合、compoesr.jsonがあるディレクトリで、composer startを実行することで"php -S ..."のコマンドが実行できます。

$ composer start
> php -S localhost:8080 -t public public/index.php

scripts定義で、ディレクトリを移動する

このように普段使うコマンドを簡単に実行できるscriptsの機能ですが、コマンドの実行時に作業ディレクトリをcompoesr.jsonがあるディレクトリから移動したい場合があります。

このような場合は"&"で複数のコマンドを続けて書くことができます。ディレクトリ移動の場合は、以下のようにcd /path/to/target & other-commandのような形で、cdコマンドを最初に実行すればよいです。

{
    "scripts": {
        "kpi": "cd src/batch & php calcKpi.php",
    }
}

scriptsの実行後は元のディレクトリに戻ってくるので、pushd/popdコマンドを使う必要は無いようです。

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。