7
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

Nest CLIで始めるnestjs

Nest CLIで始めるnestjs

by daikiojm
1 / 12

Nest CLIとは

nestjsアプリケーションの開発を支援するCLIツール。
アプリケーションのスキャフォールディングが行える。
Angular DevKit(angular-cli)の設計をもとに開発されている。

スクリーンショット 2018-07-19 8.04.26.png


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

対話形式でオプションを選択していくと、アプリケーションの雛形が作成される。

スクリーンショット 2018-07-19 0.43.05.png

作成されたプロジェクトを見ると、コードフォーマッター(prettier)やテストツール(jest)の設定ファイルなども同時に作成されるため、1から各パッケージをインストールするよりも格段に楽にnestjsを始められそうです。


モジュールの追加

ここでは、例としてUserModuleを追加する。

$ nest g mo user

すると、user というディレクトリと、user.moduleが作成される。

スクリーンショット 2018-07-19 1.08.12.png


コントローラーの追加

ここでは、例としてUserControllerを追加する。

$ nest g co user

user ディレクトリ以下にcontrollerのtsとspecが作成され、user.moduleにcontrollerが登録される。

スクリーンショット 2018-07-19 1.10.44.png


サービスの追加

ここでは、例としてUserServiceを追加する。
Controllerのときとは違い、Serviceは実行したディレクトリに対してフラットに作成される仕様らしいので、 user/ ディレクトリを指定して実行した。

$ nest g s user/user

user ディレクトリ以下にserviceのtsとspecが作成され、user.moduleにの providers にserviceが登録される。

スクリーンショット 2018-07-19 1.15.37.png


ビルド

ビルドに関するコマンドはNest CLI側では用意されておらず、package.jsonに書かれたnpm scriptを使って行う。
ココらへんは、プロジェクトに応じてtsconfigとかを設定していくことになる。

$ npm run prestart:prod

スクリーンショット 2018-07-19 8.24.21.png


最後に

nestjsでアプリケーションを作成し始める初動を格段に加速してくれるツールっぽい。
Angular CLIに慣れていると、自然に使い始められる印象。
今後のアップデートに期待。


リンク

Nest CLI -GitHub
Nest CLI Overview -Document

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?