動機
このブログを2年ぶりに再開するにあたって、deployしようと思ったらTypeError [ERR_INVALID_ARG_TYPE]: The "mode" argument must be integer
のエラーが発生。
どうもnodeがv14以降だと発生するらしく、v13に戻せば解消するそうだが、Hexo v5.0.0でも修正された模様
https://github.com/hexojs/hexo/issues/4263
ということで、せっかくなら現行最新にあげようと思ったが、いきなりメジャーバージョン2つあげることになるので慎重に。
結論
特に問題なかった
手順
package.jsonの更新
Hexoのリリースノートでbreaking changesを拾い読みする限り、特に問題はなさそうだった。
ただし、git-deployerやその他依存ライブラリもアップデートしないといけないのでnpm-check-updates
でまとめて更新する。
リリース状況チェックしてpackage-jsonをまとめて最新版へ書き換えるのにnpm-check-updates
を使う。
大体^(キャレット)がついていてマイナーバージョンアップしかしてくれないが、手動で書き換えるのも手間なので。ncu
がショートハンド。
ncu
で更新があるパッケージを表示、ncu -u
でpackage.jsonを更新する
1 |
{ |
が
1 |
{ |
に書き換わった。
インストール〜deploy
一応きれいにしてからインストール
1 |
$ rm -rf ./node_modules |
Hexoで静的ファイルを生成してからdeploy
1 |
hexo generate -f |
なお、どっかのタイミングでcss/jsが空で出力されたせいかhexo generate
だけだとcss/jsが反映されなかったので-f
オプション付けて強制上書きしている