0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ヘッドレスCMS+SSGを導入することに当たってNodeサーバー構築

Last updated at Posted at 2020-12-16

#目的:
担当する記事サイト改修でSSG/ヘッドレスCMSを導入する

#問題:
・Vercelの利用を考えましたが、ドメイン変更が必要。
・SSG/ヘッドレスCMSを導入したいけど、ドメイン変更したくないというディレクターの要望。

#検討
・とりあえず既存サーバー内にNodeサーバー構築し、いろいろ試すことに

#nodenvとは
・nodeのバージョンを管理するためのコマンド
・プラグイン(nodenv-build)を入れることで、nodeのインストールが可能

nodenvのダウンロード

GitHubからnodenvのソースをcloneする

git clone https://github.com/nodenv/nodenv.git ~/.nodenv

nodenvのビルド

nodenvをビルドして実行可能な状態にする

cd ~/.nodenv && src/configure && make -C src

#pathを通す

echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(nodenv init -)"' >> ~/.bash_profile

pathを通してコマンドを叩けるようになる

#シェルを再起動する

exec $SHELL -l

ログインシェルを再起動して新しい設定ファイルを読ませる

#nodenvバージョンの確認

nodenv --version

##プラグインのインストール

プラグイン用のディレクトリ作成

mkdir -p "$(nodenv root)"/plugins

プラグインのインストール(clone)

git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build

nodenvアップデート用プラグインのインストール(clone)

git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update

nodenv updateとコマンドを叩くことで、nodenvとそのプラグインを自動的にアップデート可能

nodeのインストール

インストール可能nodeバージョンの確認

nodenv install --list

nodeのインストール(14.15.1は現時点でのLTSバージョン)

nodenv install 14.15.1

rehash実行

nodenv rehash

・nodenvからnodeやグローバルなnpmパッケージを見えるようにするため
・新しいnodeのバージョンを入れたり、npm install -gなどを行ったときに実行する必要がある

nodeバージョンの確認

nodenv versions
* 14.15.1 (set by /home/ec2-user/***_deploy/blog/.node-version)

nodeバージョンの指定

プロジェクトで使うnodeのバージョンを指定
プロジェクトのディレクトリでのみ使うnodeのバージョンを指定する

cd /home/ec2-user/xxx_deploy/blog
nodenv local 14.15.1

プロジェクトのディレクトリ (/home/ec2-user/xxx_deploy/xxx_blog)内に.node-versionという名前の不可視ファイルが生成され、その中にそのディレクトリで使うnodeのバージョンが記述

ちなみにグローバルで使う場合のnodeバージョン指定

nodenv global 14.15.1

グローバルとローカル両方指定した場合、ローカルで指定した方が優先らしい。

build

npm ci(少し時間かかる)
npm run build

Compiled successfully、Export successfulメッセージでbuildが完了し、プロジェクトのディレクトリにout(デフォルト)というフォルダが出来て色々吐き出される。
outフォルダ内の記事のhtmlファイルを開くと問題なく記事が表示されたのでbuildが正常に行われたと判断。

スクリーンショット 2020-12-16 13.43.43.png

その他nodeコマンド

nodeアンインストール

nodenv uninstall 14.15.1

nodenvのアップデート

nodenv update

nodenvのアンインストール

~/.nodenvのディレクトリを消すだけ

rm -rf $(nodenv root)

サーバーで直接コマンド実行でbuildが正常に行われたので次はGitHubActtionでpush時に自動でgitから最新ソースをpull後にnodeサーバーでbuildする仕組みを下記のように実装。
https://qiita.com/kerry/items/5568232516b8ee323d4b

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?