少し前に書いたとおり、Node.js 14対応版のHexo 4.2.1をリリースしたものの、まだ問題が発生するというユーザがポツポツいた。

ので、確認したところ、どうも問題は2種類あって

  • Node.14 環境だと hexo generateで空のhtmlが生成される
  • Node.14 環境だと hexo-deployer-git で例外が発生する

というのがわかった。私はてっきり1つ目だけ発生しているという認識だったのですがそうではなかったようです。

2つ目の現象が発生する複数のユーザから「まだなおってない」というコメントが続いていて首をかしげていたのがここ数日。2つの違いに昨日気付いて1時間ほど前に試しにhexo-deployer-gitをインストールしてテストリポジトリにpushしてみると問題ない…。

調べると、hexo-deployer-gitが Node.js 14非対応のhexo-fs@2.0.0を内包しているのでこういう問題が発生してました。hexo-deployer-gitpackage.jsonを確認してみるとhexo-fs: ^2.0.0が指定してあり、そういうことかと。

package.json^指定はパッチバージョンがあるならインストールするという意味です。hexo-fsのNode.js 14サポート版は2.0.1なので、2.0.1リリース前にhexo-deployer-gitをインストールしていたユーザは非対応版が入ってしまい上手くいかず、リリース後にインストールした私は上手くいったと。

パッケージアンインストールしてインストールしなおしてくれと頼むと、なおったというコメントをもらったので無事解決だと思われます。しばらく似たようなIssueが上がるだろうけど、少なくとももう調査しなくてすむ。

話は変わるけど、管理しているリポジトリが多すぎて厳しい。テーマとか除いても60近くあると思う。特に今回のhexo-deployer-gitとか、たぶんメンテナ誰も使ってないんじゃないかと。観測している範囲のメンテナの方々はNetrifyとかCIサービス使ったデプロイしてるんですよね。私もこのサイトのデプロイ先はVPS上のgitリポジトリなんですが、npm scrpitからJavaScriptのファイルを1つかましてるだけでプラグインは使ってないしなぁ…。