Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9409

フロントエンドだけ作ったアプリをGitHubPagesからHerokuに移行する

$
0
0

abstract

端的に言うと、GitHubPagesに公開している、フロントエンドのみで構成されたアプリケーションをHerokuに移行しました。

※今回のアプリケーションはVue-CLI + webpackのアプリケーションですが、そうでないアプリケーションを移行したい場合でも、基本的な流れは同じだと思います。

背景

過去にVue.jsでポケモンずかんを作りました。「ポケモンずかん」はバックエンドの実装をしておらず、フロントエンドのJavaScriptと外部のAPIだけで作ったものになります。「ポケモンずかん」の実装はフロントエンドのみなので、GitHubPagesでの公開が可能です。ですので、GitHubPagesに公開していました。しかし、Herokuを使えばGitHubPagesに頼ることなくデプロイできるようなので移行してみました。

Heroku とは

Herokuは作成したアプリケーションを簡単にデプロイできるサービスです。Herokuは様々なバックエンドの主要な言語に対応しています。Herokuには有料プランがありますが、趣味程度のアプリケーションのためにHerokuを使うのであれば、無料の範囲で使えると思います。私は今後バックエンドを含めた何かしらのアプリケーションを作りたいと思っていたので、その意味でも、Herokuに挑戦してみました。もちろん、私のようにフロントエンドだけで構成されたアプリケーションをデプロイすることもできます。

手法

Herokuにデプロイするために、バックエンドに変わるモノは必要となります。なのでNode.jsを使ってサーバの肩代わりをしてもらいます。とはいえ、難しい手続きはありません。

HerokuはGitHubにpushする感覚に近く、簡単にデプロイすることができました。※後述します。

実行環境

version
Node.jsv11.15.0
OSmacOS Catalina v10.15.7
プロセッサIntel Core i5

Herokuの利用

Herokuを利用するための手順を記述します。

アカウント作成

  1. Herokuで新規登録します。
  2. メールが届きます。リンクをクリックして認証ページへ遷移します。
  3. 手順に従い、パスワードの設定をします。

Heroku CLIをインストール

Homebrewからインストールします。Homebrewをインストールしていない場合は別途インストールが必要です。

$ brew -v
Homebrew 2.6.0 // インストール済み
Homebrew/homebrew-core (git revision feacfd; last commit 2020-12-02)

インストールします。

$ brew tap heroku/brew && brew install heroku

バージョンが表示されれば完了です。

$ heroku -v
heroku/7.47.4 darwin-x64 node-v12.16.2

Herokuにログイン

コマンドラインからログインします。アカウントを作成したときのメールアドレスとパスワードを入力します。

$ heroku login -i
heroku: Enter your login credentials
Email: "メールアドレス"
Password: "パスワード"

ローカルリポジトリ

GitHubに保管している(もしくはGitHubPageで公開している)アプリケーションをローカルに落とします。

GitHubからクローンを取得する

任意の場所に作業ディレクトリを作成します。

$ mkdir github //任意の名前

Gitの環境を構築します。

$ git init

リポジトリのクローンを取得します。

$ git clone 'Herokuで公開したいGitHubリポジトリのURL.git'

取得したアプリケーションの配下に移動します。

$ cd "アプリケーション"

アプリケーションの編集

Vue.jsを実行するためにNode.jsのExpressを使います。

Expressのインストール

$ npm i express

expresspackage.jsonに追加されていることを確認できます。

//package.json//略記{"dependencies":{"express":"^4.17.1",}}

server.js

Expressに必要なファイルを用意します。

Herokuに実行してもらうソースコードのディレクトリ、つまりビルドしたソースコードのディレクトリを指定します。

※もし、GitHubPagesを利用して公開している人はビルドしたソースコードのディレクトリ名をdocsにしていると思います。それに合わせてdocsとすればOKです。

// server.jsconstexpress=require('express');constserveStatic=require('serve-static');app=express();app.use(serveStatic(__dirname+"/docs"));// dist,socs等のディレクトリ名constport=process.env.PORT||5000;app.listen(port);console.log('server started '+port);

package.json

下記のように変更します。

//package.json//略記{"scripts":{"start":"node server.js",//変更}}

ビルド

落としてきたアプリケーションに必要なライブラリをインストールします。

$ npm i

ビルドします。

$ npm run build 

Herokuにデプロイ予定のアプリケーションをローカルで実行し、事前に確認できます。

$ node server.js

Gitにコミット

$ git add .
$ git commit -am "メッセージ"

Herokuの実行

コマンドを入力し、デプロイ先を作成します。
実行するとHeroku上のアプリケーション名とURLを取得できます。末尾が.herokuapp.com/のURLがデプロイ先です。

$ heroku create 'アプリケーション名'

デプロイします。

$ git push heroku master

動作確認

デプロイで表示されたURLにアクセスします。表示されていれば完了です。

終わりに

GitHubPagesに頼りきりでしたがバックエンドをデプロイすることはできないので、何か手ごろなものはないかと探した結果たどり着きました。次はバックエンドを含めて使ってみたいと思います。

最後まで読んでいただきありがとうございます。

もし間違っているところを見かけたらお教えください!🙏


Viewing all articles
Browse latest Browse all 9409

Trending Articles