VaporのToolboxについて


この記事では以下の環境で動作を確認しています。

  • Xcode9.0
  • macOS Sierra バージョン 10.12.6
  • Vapor Toolbox: 2.0.4
  • Vapor Framework: 2.2.2

Vapor Toolbox

Vapor ToolboxはVaporが提供しているコマンドラインツールです。これを使ってアプリケーションの作成やビルドや実行ができます。
またXcodeのプロジェクトファイルの生成や、Herokuへのデプロイなどができます。

この章ではVapor Toolboxの使い方をみていきます。

インストール

Vapor toolboxはパッケージ管理システムHomebrewで提供されています。

Homebrewのインストール

Homebrewがまだインストールされていない方はインストールしましょう。
ターミナルで以下のコマンドを実行します。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

インストールできたか確認します。

$ brew -v
Homebrew 1.3.2

Homebrew Tap

HomebrewのTapコマンドを実行してVaporの全てのパッケージをインストール出来るようにします。

$ brew tap vapor/homebrew-tap
$ brew update

Vapor Toolboxのインストール

下記のコマンドでインストールができます。
インストール後はvapor --helpでインストールできているかをチェックしましょう。

$ brew install vapor
# インストールの確認
$ vapor --help

アプリケーションの作成

アプリケーションはVapor Toolsを使って簡単に作成できます。
アプリケーションの作成は$ vapor newコマンドを実行します。
--templeteというオプションでテンプレートからアプリケーションを作成することができます。構文は以下です。

$ vapor new <name> [--template]

テンプレートはデフォルトで以下が用意されています。

名前 オプション 説明
API --template=api Fluent のデータベースを使ったJSON APIのテンプレート
Web --template=web Leafを使ったHTMLサイトのテンプレート
Auth --template=auth Auth認証サーバーを作成するテンプレート

テンプレート指定は以下の仕組みで動いています。

-template=[web|api|auth]は以下のようなショートカットの指定もできます。

$ vapor new <name> —-web
$ vapor new <name> —-api
$ vapor new <name> —-auth

Webアプリケーションをつくってみる

実際にVaporアプリケーションを作ってみましょう。
下記のコマンドを実行します。

$ $ vapor new SampleWeb --web
$ cd SampleWeb

アプリケーションをビルド、実行する

テンプレートによってアプリケーションのソースがすでに作成されています。
アプリケーションを起動してみましょう。

$ vapor build
$ vapor run

http://0.0.0.0:8080/
にてローカルサーバーが立ち上がります。
デフォルトのWebページが表示されます。

Xcodeのプロジェクト作成

Swiftで開発している方なら、普段と同じIDEのXcodeで開発したいですよね?
VaporにはXcodeのプロジェクトを生成するコマンドがありますのでそれを使ってみましょう。

$ vapor xcode
Generating Xcode Project [Done]
Select the `Run` scheme to run.
Open Xcode project?
y/n> 
# yを入力するとXcodeが起動

SampleWeb.xcodeprojが作成されます。
これでVapor開発でもXcodeが使えるようになります。

Herokuにデプロイ

ローカルで開発したらデプロイして一般に公開したいものです。
Vapor ToolsにはHerokuアプリケーションを作成するコマンドがすでにあります。
gitでコミットして、vapor heroku initをすればherokuのアプリケーションが作れます!

まずはコマンドラインでHerokuにログインしましょう。

$ heroku login
Enter your Heroku credentials:
Email: <YOUR MAIL>
Password: ****************

そしてソースをgitでコミットします。

$ git init
$ git add ./
$ git commit -m "init commit"

vapor heroku initを実行することで、Heroku上にVaporのアプリケーションを作成することができます。
Herokuアプリケーションを作成する関係上、コマンドラインで様々な入力を求められます。適切なものを指定していきましょう。
以下の例にインラインにて私の環境で聞かれたものをコメントします。

$ vapor heroku init
Would you like to provide a custom Heroku app name? #独自のHerokuアプリ名を設定するか?
[y]es or [n]o> n
Would you like to deploy to a region other than the US? #USリージョン以外でデプロイするか?
y/n> n
https://secure-thicket-91213.herokuapp.com/ | https://git.heroku.com/secure-thicket-91213.git

Would you like to provide a custom Heroku buildpack? #独自のビルドパックを利用するか?
y/n> n
Setting buildpack...
Are you using a custom Executable name? #独自の実行名を利用するか?
y/n> n
Setting procfile...
Committing procfile...
Would you like to push to Heroku now? #HerokuへPushを今するか?
y/n> y
This may take a while...
Building on Heroku ... ~5-10 minutes

上手く行けばHerokuにアプリケーションが作成されます。

開発が進み、ソースが更新されたら、Gitでコミットが終わった後にheroku pushコマンドを実行すればHerokuへプッシュが行われます。

$ vapor heroku push

参考

Getting started Toolbox