見出し画像

【改】Nuxt.js + Github + Xserver連携(ちょっとラクになったバージョン)

git init ってフォルダ(ディレクトリ)が空じゃなくても出来るって知らなかった、おばちゃんです。

おばちゃんは古い人間だし、IT 用語に詳しくないから、init(イニシャライズ=初期化)って聞くと、フロッピーディスクをパソコンで使えるようにする時の「初期化」っていうのが、真っ先に頭に浮かぶ。だから、Git の「init」も空のフォルダ(ディレクトリ)でやらないと、中に入っているファイルが全消去されるのだと思ってた。

ところが、うっかりファイルが入っている自分のパソコンのフォルダで「git init」しちゃったら、中身が消されずに残ってた・・・

知らなかった。でも、もしや、それってことは、Xserver でも出来ちゃったりする???

で、怖かったけど「git init」やってみたのですよ。なう稼働しているファイルがごっそり詰まっている本番サーバのウェブサイト公開ルートディレクトリで。結果、出来た・・・(冷や汗)

と、そこで Nuxt.js + Github + Xserver 連携で改めて考えたのが、以下の布陣。
Nuxt.js で generate して出来た dist の中身だけ入れた、公開専用リポジトリを作って、ローカル→リモート→本番サーバでサイト公開(更新)。
やってることは単純。ってか、おばちゃん単純なことしか出来ない。

ローカルリポジトリ(自分のパソコン)
適当な名前(nuxtjs-deploy)のフォルダを作って、「git init」してリモートリポジトリ(Github)と紐付け、dist の中身を全部入れる。

nuxtjs-deploy % git init
nuxtjs-deploy % git remote add origin git@github.com:obachan/nuxtjs-deploy.git
nuxtjs-deploy % ls -a
.
..
.git
(Nuxt.js の dist の中身)

  ↓↓↓  push(Nuxt.js の dist の中身)  ↓↓↓

リモートリポジトリ(Github)
nuxtjs-deploy という名前のリポジトリで、dist の中身を保管する。

git@github.com:obachan/nuxtjs-deploy.git

  ↓↓↓  pull(Nuxt.js の dist の中身)  ↓↓↓

本番サーバ(Xserver)
公開ウェブサイトのルートディレクトリで、「git init」してリモートリポジトリ(Github)と紐付け、dist の中身を引っ張ってくる。

[obachan@sv00000 public_html]$ git init
[obachan@sv00000 public_html]$ git remote add origin git@github.com:obachan/nuxtjs-deploy.git
[obachan@sv00000 public_html]$ git pull origin main

これで、ウェブサイト公開(更新)が完了! という感じ。

いままでやっていた方法は、

【Nuxt.js + Github + Xserver 連携】プッシュプルプルでウェブサイトを公開する
https://note.com/obachan_50over/n/n71bce0c0a7b5

いまいち上手くいかなかった ↑ のフォロー記事 ↓

【Github + Webサイト更新】しかも原始的な方法で
https://note.com/obachan_50over/n/n730464e48698

Xserver 内でコピーしたり移動したり削除したりと、アホみたいに複雑でラクになっているか微妙だった。
だから、今回の方法はずいぶんシンプルになって良かったと、おばちゃん的には満足している。

ただ、やっぱり、おばちゃんだから「なんだかなあ・・・」という点はいくつか残った。

◆なんだかなあ(其の一)

リニューアルバージョンにて初めての、Xserver から「git pull origin main」する時、公開中のファイルの扱いをどうしてよいかわからなかった。
仕方がないから、メンテナンスページ(index.php)を作って公開中の全ファイルを万が一に備えて退避させ、その隙に「git pull origin main」した。

◆なんだかなあ(其の二)

今回のローカルリポジトリは Nuxt.js 製のプロジェクトとは全く別のところに作ったから(ってか、プロジェクト内で dist だけ切り離すことが、おばちゃんの能力不足で出来なかった)、今後の更新時、dist の中身は毎回、公開専用ローカルリポジトリ内で新旧入れ替えをすることになる。

◆なんだかなあ(おまけ)

いままでやっていた方法は、Nuxt.js 製のプロジェクトのリポジトリに dist も含めて push していたけれど、もうここでは dist を含めなくてよいので、プロジェクトの .gitignore に dist を追記して追跡を解除した。しかし、過去の dist の変更履歴は全て残っている。(おばちゃん、消す方法がわからない・・・)

WEBデザイナー(自営業)のおばちゃんです。最近はBlenderネタ多めです。