【npm】複数のコマンドを同時に実行する方法|concurrently

今回は、npmでコマンドを同時実行できるパッケージ「concurrently」を、プロジェクトで利用する方法となります。

また、npmはすでにインストールされている前提としています。nmpのインストールやコマンドについては以下のリンク先を参考にしてみてください。

【npm】concurrentlyを利用し複数のコマンドを同時に実行する方法

プロジェクト内にconcurrentlyをインストール

以下、npmのconcurrentlyをプロジェクト内にインストールする方法となります。

package.jsonを作成

※すでにプロジェクト内でnmpを利用しpackage.jsonがある場合には、この手順は飛ばします。

まず、プロジェクト内でnpmを配置するディレクトリ(npmのルート)にcdコマンドで移動します。

そして、以下のコマンドでpackage.jsonを作成します。

npm init

concurrentlyをインストール

次に、プロジェクト内のnpmのルートディレクトリで、以下のコマンドを実行しconcurrentlyをインストールします。

npm install concurrently -D

concurrentlyでコマンドを同時実行する方法

concurrentlyコマンドでは、同時実行させるコマンドを、""で囲んで引数に指定します。

以下、インストールしたconcurrentlyの利用方法となります。

npm-scriptsを利用しコマンドを実行

npmでは、npm-scriptsを利用することで、シェルスクリプトやコマンドのエイリアス(別名)をスクリプトとして定義し実行できます。

今回の例では、そのnpm-scriptsを利用しconcurrentlyコマンドを実行するため、まず、以下のようにpackage.jsonファイル内の"scripts"の値を追加し、スクリプトを定義します。

"scripts"の値はオブジェクトとなり、キーにスクリプト名を指定し、値に実行するコマンドを指定します。

"scripts": {
	"start": "concurrently --kill-others \"command1 arg\" \"command2 arg\""
}

上記で利用したスクリプト名のstartは、デフォルトで用意されているスクリプト名となり、以下のコマンドで実行します。

npm start

また、npm-scriptsを任意のスクリプト名で定義した場合には、以下のコマンドで実行します。

npm run スクリプト名

concurrentlyコマンドについて

concurrentlyコマンドでは、同時実行させるコマンドを、""で囲んで引数に指定しますが、npm-scriptsで利用する場合には、コマンドをJSONの値として指定するため""をエスケープをします。

上記コマンドのオプションで指定している--kill-othersは、同時実行するコマンドのプロセスが一つでも終了した場合に、他のコマンドのプロセスも終了させる設定となります。

まとめ

以上がnpmのconcurrentlyを利用し、コマンドを同時実行させる方法となります。

concurrentlyの利用方法の詳細ついては、以下の参考サイト内を確認してみてください。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。