お気づきの方はお気づきでしょうが、当サイトは静的ジェネレータのhexoを利用してます。

全然利点を活用しない使い方をしてますが。

そんなhexoを使ってサイトを構築中に、突然localhostでエラーが発生することがあります。

あまり使ってる人がいないのか、検索しても日本語で対処法が出なかったので、自分への備忘録を兼ねて書いておきます。単に日本で使ってる人はプログラミングができる人が多いので、必要ないのかも。

1. hexoの基本的なlocalhost

コマンドで

1
hexo server

なのですが。

2. localhostエラーの原因

久しぶりに触ってコマンドを度忘れしてctrl cを間違えた結果、localhost:4000でサーバーが立ち上がらなくなりました。

以下のようなエラーが出ます。

hexo localhost error

FATAL Port 4000 has been used.

いや、使ってませんけど!

…といっても聴いてくれるような相手ではない。

赤字が怖い。「致命的エラー。別のポートを試せ。

エラー。おい、聴いてんのか。アドレスはもう使ってるって言ってるだろ!」

もしプログラミング言語が日本語だったなら、毎度こんな罵詈雑言を吐き出されるわけである。

3. エラーの解決手順

その場合の対処法。

hexoはあまり日本人サイトが出ないので、困った時の英語か中国語。

hexoは圧倒的に中国人ユーザーが多いので中国語。

こちらにありました。

FATAL Port 4000 has been used. Try other port instead.-CSDN博客

hexo localhost error

つまり、訳すと

config.ymlに以下の文字を追加。どこでもいいです。

1
2
3
4
server:
port: 4001
compress: true
header: true

4001の部分は何でもいいよって書いてますね。

コマンドで

1
hexo server -p 4001

と入力。

サーバーは

1
http://localhost:4001

になるというお話アルネ。

4. 代替案

なお、こんな記事がありました。

Node.jsの開発で warn - error raised: Error: listen EADDRINUSE って怒られるときの対応 - Qiita

なるほど。プロセスをkillすればいいのか。キル・・・

いちいち用語が怖いdeath。

まとめ

git bashでは、普通の人よりサイトを作れたりちょい詳しいレベルだと、しばしばエラーを起こしパニクります。githubサイトにプッシュすることもできるのですが、過去におかしな操作をして記事を更新できなくなったことがあり、時間が無駄なので、静的ジェネレータ使用のクセに非常にアナログな手段を取ってます。

hexoは静的ジェネレータの中でもよさげなテンプレートがあったのと簡単そうだったのでこれに移りましたが、なぜか中国人だらけ。テンプレートのイラストも、これ日本の某サイトから勝手に取ってきてないですかね?というのがしばしばあります(背景や服装が完全に日本、看板が…)。こちらで使用してる物も日本語仕様はなかったので、大体日本語に置き換えました。

過去に何もできない時になんとなく独学で勉強してた中国語がいろいろ役に立ちすぎる。



追記

npmやら何やらをアップデートしろと出たので、指示通りにしたところ解消されました。npmアップデートで直るかもしれません。初心者にはいろいろ接続できなくなる危険もありますが…