次のコマンドで、Hasura CLI をローカルにインストールした場合には、グローバルにインストールした時と、実行コマンドに差が生じます。(インストール先がグローバルとローカルと異なるその差異のために、生じます。ローカルにある場合、npm の仕様に準じた動作をします。)

以降の説明は Hasura CLI 特有の説明ではなく npm の仕様の説明になります。より正確には npm のドキュメント参照ください。

yarn add hasura-cli

ローカルパッケージの実行に関する正確な知識がない場合には、グローバルにインストールすることをおすすめします。自分もグローバルにインストールをして開発していますが、さしあたって大きなトラブルは発生していません。

ターミナルから実行する場合

ターミナルからローカルにある npm パッケージを実行するためには npx を使用します。

以下のようなディレクトリ構造にある場合で top にいた場合には、以下のようにコマンドを実行すると正常に hasura console が立ち上がります。

Screen Shot 2020-08-25 at 19.31.15

cd hasura
npx hasura cosole

package.json に npm script を記述する場合

npx ではなく、package.json に npm script を記述するとより便利です。以下のようなディレクトリ構造の場合に、次のように npm script を記述します。

Screen Shot 2020-08-25 at 19.31.15

{
  "scripts": {
    "hasura": "hasura --project hasura",
    "hasura:console": "npm run hasura console",
    "hasura:apply": "npm run hasura migrate apply"
  }
}

すると package.json と同階層、及び下の階層で yarn hasura:console, yarn hasura:aplly と実行することで正常に動作します。また yarn hasura migrate status と入力しても正常にどうします。これは npm script に設定した "hasura": "hasura --project hasura" が関連してきます。これがない場合には yarn hasura migrate status は動作しません。

hasura --propject hasra の説明についてはこちらのドキュメントを参照ください

記事作成のヒントをいただいた「えるきちさん」ありがとうございました!