コマンド

コマンドリファレンス

このガイドでは、フレームワークコアと公式パッケージに含まれるすべてのコマンドの使用方法をカバーしています。コマンドのヘルプを表示するには、node ace listコマンドまたはnode ace <コマンド名> --helpコマンドを使用することもできます。

node ace list

ヘルプ画面の出力は、docoptの標準にしたがってフォーマットされています。

serve

serveコマンドは、開発環境でAdonisJSアプリケーションを起動するために@adonisjs/assemblerパッケージを使用します。ファイルの変更を監視し、ファイルの変更ごとにHTTPサーバーを再起動することもできます。

node ace serve --hmr

serveコマンドは開発サーバー(bin/server.tsファイル経由)を子プロセスとして起動します。子プロセスにnodeの引数を渡す場合は、コマンド名の前にそれらを定義できます。

node ace --no-warnings --inspect serve --hmr

以下は、serveコマンドに渡すことができるオプションのリストです。または、--helpフラグを使用してコマンドのヘルプを表示することもできます。

--hmr

HMRモードでファイルシステムを監視し、サーバーをリロードします。

--watch

ファイルシステムを監視し、ファイルの変更ごとにプロセスを常に再起動します。

--poll

ファイルシステムの変更を検出するためにポーリングを使用します。開発用にDockerコンテナを使用している場合は、ポーリングを使用あります。

--clear | --no-clear

ファイルの変更ごとにターミナルをクリアし、新しいログを表示する前に古いログを保持するには、--no-clearフラグを使用します。

--assets | --no-assets

AdonisJS HTTPサーバーと一緒にアセットバンドル開発サーバーを起動します。アセットバンドラーの開発サーバーをオフにするには、--no-assetsフラグを使用します。

--assets-args

アセットマネージャーの子プロセスにコマンドライン引数を渡します。たとえば、viteを使用する場合、次のようにオプションを定義できます。

node ace serve --hmr --assets-args="--cors --open"

build

buildコマンドは、@adonisjs/assemblerパッケージを使用してAdonisJSアプリケーションの本番ビルドを作成します。ビルドの生成には次の手順が実行されます。

参照も: TypeScriptビルドプロセス.

node ace build

以下は、buildコマンドに渡すことができるオプションのリストです。または、--helpフラグを使用してコマンドのヘルプを表示することもできます。

--ignore-ts-errors

プロジェクトにTypeScriptエラーがある場合、ビルドコマンドはビルドプロセスを終了します。ただし、--ignore-ts-errorsフラグを使用してこれらのエラーを無視し、ビルドを完了できます。

--package-manager

ビルドコマンドは、アプリケーションで使用しているパッケージマネージャーのpackage.jsonファイルとロックファイルをコピーします。

パッケージマネージャーは、@antfu/install-pkgパッケージを使用して検出されます。ただし、パッケージマネージャーの検出をオフにすることもできます。

--assets | --no-assets

バックエンドアプリケーションと一緒にフロントエンドアセットをバンドルします。アセットバンドラーの開発サーバーをオフにするには、--no-assetsフラグを使用します。

--assets-args

アセットマネージャーの子プロセスにコマンドライン引数を渡します。たとえば、viteを使用する場合、次のようにオプションを定義できます。

node ace build --assets-args="--sourcemap --debug"

add

addコマンドは、npm install <パッケージ名>node ace configureコマンドを組み合わせたものです。つまり、2つの別々のコマンドを実行する代わりに、addコマンドを使用してパッケージをインストールして設定できます。

addコマンドは、アプリケーションで使用されているパッケージマネージャーを自動的に検出し、それを使用してパッケージをインストールします。ただし、--package-managerCLIフラグを使用して常に特定のパッケージマネージャーを選択することもできます。

# @adonisjs/lucidパッケージをインストールして設定する
node ace add @adonisjs/lucid
# パッケージを開発依存関係としてインストールし、設定する
node ace add my-dev-package --dev

パッケージをフラグで設定できる場合は、直接addコマンドに渡すことができます。不明なフラグはすべてconfigureコマンドに渡されます。

node ace add @adonisjs/lucid --db=sqlite

--verbose

パッケージのインストールと設定のログを表示するために詳細モードを有効にします。

--force

configureコマンドに渡されます。パッケージの設定時に既存のファイルを強制的に上書きします。詳細については、configureコマンドを参照してください。

--package-manager

パッケージのインストールに使用するパッケージマネージャーを定義します。値はnpmpnpmbun、またはyarnである必要があります。

--dev

開発依存関係としてパッケージをインストールします。

configure

インストール後にパッケージを設定します。コマンドの最初の引数としてパッケージ名を指定します。

node ace configure @adonisjs/lucid

--verbose

パッケージのインストールログを表示するために詳細モードを有効にします。

--force

AdonisJSのスタブシステムは既存のファイルを上書きしません。たとえば、@adonisjs/lucidパッケージを設定し、アプリケーションにすでにconfig/database.tsファイルがある場合、設定プロセスは既存の設定ファイルを上書きしません。

ただし、--forceフラグを使用してファイルを強制的に上書きできます。

eject

指定されたパッケージのスタブをアプリケーションのstubsディレクトリにコピーします。次の例では、make/controllerスタブをアプリケーションにコピーして変更します。

参照も: スタブのカスタマイズ

# @adonisjs/coreパッケージからスタブをコピーする
node ace eject make/controller
# @adonisjs/bouncerパッケージからスタブをコピーする
node ace eject make/policy --pkg=@adonisjs/bouncer

generate:key

暗号的に安全なランダムキーを生成し、.envファイルにAPP_KEY環境変数として書き込みます。

参照も: アプリケーションキー

node ace generate:key

--show

.envファイルに書き込む代わりに、キーをターミナルに表示します。デフォルトでは、キーはenvファイルに書き込まれます。

--force

generate:keyコマンドは、アプリケーションを本番で実行する場合にキーを.envファイルに書き込みません。ただし、--forceフラグを使用してこの動作を上書きできます。

make:controller

新しいHTTPコントローラークラスを作成します。コントローラーはapp/controllersディレクトリ内に作成され、次の命名規則が使用されます。

  • 形式: 複数形
  • サフィックス: controller
  • クラス名の例: UsersController
  • ファイル名の例: users_controller.ts
node ace make:controller users

また、次の例のようにカスタムアクション名を持つコントローラーも生成できます。

# "index"、"show"、"store"メソッドを持つコントローラーを生成します
node ace make:controller users index show store

--singular

コントローラー名を単数形に強制します。

--resource

リソース上でCRUD操作を実行するためのメソッドを持つコントローラーを生成します。

--api

--resourceフラグと似ていますが、フォームを表示するために使用されるcreateeditメソッドは定義されません。

make:middleware

HTTPリクエストのための新しいミドルウェアを作成します。ミドルウェアはapp/middlewareディレクトリ内に保存され、次の命名規則が使用されます。

  • 形式: 単数形
  • サフィックス: middleware
  • クラス名の例: BodyParserMiddleware
  • ファイル名の例: body_parser_middleware.ts
node ace make:middleware bodyparser

--stack

スタックの選択プロンプトをスキップし、スタックを明示的に定義します。値はservernamed、またはrouterである必要があります。

node ace make:middleware bodyparser --stack=router

make:event

新しいイベントクラスを作成します。イベントはapp/eventsディレクトリ内に保存され、次の命名規則が使用されます。

  • 形式: NA
  • サフィックス: NA
  • クラス名の例: OrderShipped
  • ファイル名の例: order_shipped.ts
  • 推奨: アクションのライフサイクルを中心にイベントの名前を付ける必要があります。たとえば: MailSendingMailSentRequestCompletedなど。
node ace make:event orderShipped

make:validator

新しいVineJSバリデータファイルを作成します。バリデータはapp/validatorsディレクトリ内に保存され、各ファイルに複数のバリデータをエクスポートできます。

  • 形式: 単数形
  • サフィックス: NA
  • ファイル名の例: user.ts
  • 推奨: アプリケーションのリソースを中心にバリデータファイルを作成する必要があります。
# ユーザーを管理するためのバリデータ
node ace make:validator user
# 投稿を管理するためのバリデータ
node ace make:validator post

--resource

createupdateアクションのための事前定義されたバリデータを持つバリデータファイルを作成します。

node ace make:validator post --resource

make:listener

新しいイベントリスナークラスを作成します。リスナークラスはapp/listenersディレクトリ内に保存され、次の命名規則が使用されます。

  • 形式: NA
  • サフィックス: NA
  • クラス名の例: SendShipmentNotification
  • ファイル名の例: send_shipment_notification.ts
  • Recommendation: The event listeners must be named after the action they perform. For example, a listener that sends the shipment notification email should be called SendShipmentNotification.
node ace make:listener sendShipmentNotification

--event

イベントリスナーと一緒にイベントクラスを生成できます。

node ace make:listener sendShipmentNotification --event=shipment_received

make:service

新しいサービスクラスを作成します。サービスクラスはapp/servicesディレクトリ内に保存され、以下の命名規則が使用されます。

サービスには事前に定義された意味はなく、アプリケーション内のビジネスロジックを抽出するために使用できます。たとえば、アプリケーションが多くのPDFを生成する場合、PdfGeneratorServiceというサービスを作成し、複数の場所で再利用できます。

  • 形式: 単数形
  • サフィックス: service
  • クラス名の例: InvoiceService
  • ファイル名の例: invoice_service.ts
node ace make:service invoice

make:exception

新しいカスタム例外クラスを作成します。例外はapp/exceptionsディレクトリ内に保存されます。

  • 形式: NA
  • サフィックス: exception
  • クラス名の例: CommandValidationException
  • ファイル名の例: command_validation_exception.ts
node ace make:exception commandValidation

make:command

新しいAceコマンドを作成します。デフォルトでは、コマンドはアプリケーションのルートにあるcommandsディレクトリに保存されます。

このディレクトリのコマンドは、AdonisJSがAceコマンドを実行しようとすると自動的にインポートされます。このディレクトリにはAceコマンドではない追加のファイルを保存するために、ファイル名の前に_を付けることもできます。

  • 形式: NA
  • サフィックス: NA
  • クラス名の例: ListRoutes
  • ファイル名の例: list_routes.ts
  • オススメ: コマンドは実行するアクションに基づいて名前を付ける必要があります。たとえば、ListRoutesMakeControllerBuildなどです。
node ace make:command listRoutes

make:view

新しいEdge.jsテンプレートファイルを作成します。テンプレートはresources/viewsディレクトリ内に作成されます。

  • 形式: NA
  • サフィックス: NA
  • ファイル名の例: posts/view.edge
  • オススメ: リソースごとにテンプレートをサブディレクトリ内にグループ化する必要があります。たとえば: posts/list.edgeposts/create.edgeなどです。
node ace make:view posts/create
node ace make:view posts/list

make:provider

新しいサービスプロバイダーファイルを作成します。プロバイダはアプリケーションのルートにあるprovidersディレクトリに保存され、以下の命名規則が使用されます。

  • 形式: 単数形
  • サフィックス: provider
  • クラス名の例: AppProvider
  • ファイル名の例: app_provider.ts
node ace make:provider app

--environments

プロバイダがインポートされる環境を定義します。アプリケーションの環境について詳しくはこちらをご覧ください

node ace make:provider app -e=web -e=console

make:preload

新しいプリロードファイルを作成します。プリロードファイルはstartディレクトリ内に保存されます。

node ace make:preload view

--environments

プリロードファイルがインポートされる環境を定義します。アプリケーションの環境について詳しくはこちらをご覧ください

node ace make:preload view app -e=web -e=console

make:test

tests/<suite>ディレクトリ内に新しいテストファイルを作成します。

  • 形式: NA
  • サフィックス: .spec
  • ファイル名の例: posts/list.spec.tsposts/update.spec.ts
node ace make:test --suite=unit

--suite

作成するテストファイルのスイートを定義します。指定しない場合、コマンドはスイートの選択についてプロンプトを表示します。

make:mail

app/mailsディレクトリ内に新しいメールクラスを作成します。メールクラスはNotificationキーワードでサフィックスが付けられますが、--intent CLIフラグを使用してカスタムサフィックスを定義することもできます。

  • 形式: NA
  • サフィックス: Intent
  • クラス名の例: ShipmentNotification
  • ファイル名の例: shipment_notification.ts
node ace make:mail shipment
# ./app/mails/shipment_notification.ts

--intent

メールのカスタムインテントを定義します。

node ace make:mail shipment --intent=confirmation
# ./app/mails/shipment_confirmation.ts
node ace make:mail storage --intent=warning
# ./app/mails/storage_warning.ts

make:policy

新しいBouncerポリシークラスを作成します。ポリシーはapp/policiesフォルダ内に保存され、以下の命名規則が使用されます。

  • 形式: 単数形
  • サフィックス: policy
  • クラス名の例: PostPolicy
  • ファイル名の例: post_policy.ts
node ace make:policy post

inspect:rcfile

adonisrc.tsファイルの内容をデフォルトとマージした後の状態で表示します。このコマンドを使用して、利用可能な設定オプションを確認し、アプリケーションの要件に応じてオーバーライドできます。

参照も: AdonisRCファイル

node ace inspect:rcfile

list:routes

アプリケーションによって登録されたルートのリストを表示します。このコマンドはAdonisJSアプリケーションをconsole環境で起動します。

node ace list:routes

また、公式のVSCode拡張機能を使用している場合、VSCodeのアクティビティバーからルートのリストを表示することもできます。

--json

ルートをJSON文字列として表示します。出力はオブジェクトの配列になります。

--table

CLIテーブル内にルートを表示します。デフォルトでは、ルートはコンパクトで見やすいリスト形式で表示されます。

--middleware

指定したミドルウェアを使用しているルートのリストをフィルタリングします。ミドルウェアを1つ以上指定するために*キーワードを使用できます。

--ignore-middleware

指定したミドルウェアを使用していないルートのリストをフィルタリングします。ミドルウェアを使用していないルートを含めるために*キーワードを使用できます。

env:add

env:addコマンドを使用すると、.env.env.exampleファイルに新しい環境変数を追加し、start/env.tsファイルにバリデーションルールを定義できます。

コマンドを実行すると、変数名、値、バリデーションルールを入力するようにプロンプトが表示されます。または、引数として渡すこともできます。

# 変数名、値、バリデーションルールを入力するようにプロンプトが表示されます
node ace env:add
# 変数名、値、バリデーションルールを定義します
node ace env:add MY_VARIABLE value --type=string

--type

環境変数のタイプを定義します。値は次のいずれかである必要があります: stringbooleannumberenum

--enum-values

環境変数のタイプがenumの場合、許可される値を定義します。

node ace env:add MY_VARIABLE foo --type=enum --enum-values=foo --enum-values=bar