Nest CLIとは
nestjsアプリケーションの開発を支援するCLIツール。
アプリケーションのスキャフォールディングが行える。
Angular DevKit(angular-cli)の設計をもとに開発されている。
Nest CLIでできること
- アプリケーションの新規作成
- アプリケーションの各種構成要素(controller, service, ...)の作成
- 依存パッケージ(@nestjs)のアップデート
※ 2018/07/19 現在
それぞれのコマンド紹介
- アプリケーションの新規作成
- nest new app-name (alias: n)
- アプリケーションの各種構成要素(controller, service, ...)の作成
- nest generate element-name (alias: g)
- 依存パッケージ(@nestjs)のアップデート
- nest update package-name (alias: u)
触ってみる
公式ドキュメントによると、npmからインストールする方法と、Docker HubからCLIインストール済みのイメージを取得する方法が紹介されている。
今回は、npmからインストールする方法を試してみる。
Nest CLIのインストール
$ npm i -g @nestjs/cli
$ nest --version
5.3.0
プリケーションの新規作成
$ nest new nestjs-first-app
$ cd nestjs-first-app
$ npm start
対話形式でオプションを選択していくと、アプリケーションの雛形が作成される。
作成されたプロジェクトを見ると、コードフォーマッター(prettier)やテストツール(jest)の設定ファイルなども同時に作成されるため、1から各パッケージをインストールするよりも格段に楽にnestjsを始められそうです。
モジュールの追加
ここでは、例としてUserModuleを追加する。
$ nest g mo user
すると、user
というディレクトリと、user.moduleが作成される。
コントローラーの追加
ここでは、例としてUserControllerを追加する。
$ nest g co user
user
ディレクトリ以下にcontrollerのtsとspecが作成され、user.moduleにcontrollerが登録される。
サービスの追加
ここでは、例としてUserServiceを追加する。
Controllerのときとは違い、Serviceは実行したディレクトリに対してフラットに作成される仕様らしいので、 user/
ディレクトリを指定して実行した。
$ nest g s user/user
user
ディレクトリ以下にserviceのtsとspecが作成され、user.moduleにの providers
にserviceが登録される。
ビルド
ビルドに関するコマンドはNest CLI側では用意されておらず、package.jsonに書かれたnpm scriptを使って行う。
ココらへんは、プロジェクトに応じてtsconfigとかを設定していくことになる。
$ npm run prestart:prod
最後に
nestjsでアプリケーションを作成し始める初動を格段に加速してくれるツールっぽい。
Angular CLIに慣れていると、自然に使い始められる印象。
今後のアップデートに期待。