node.jsのバージョン違いで`XXXXX was compiled against a different Node.js version using`というエラー

Win10マシン + Docker for Windowsで.wp-env.jsonの試験をしようとして以下のエラーが発生いました。

XXXXX was compiled against a different Node.js version using NODE_MODULE_VERSION 64.
This version of Node.js requires NODE_MODULE_VERSION 72.
Please try re-compiling or re-installing

経緯としては、

  • 最初10.16.3でnpm i -D @wordpress/envを実行し、wp-env startで動かそうとしてエラーでコケた(エラー文は下記のような形)
  • node.jsのバージョンが足りないと思い、nodistで12.16.3を指定
  • 再度wp-env startしたところ、上記のXXXXX was compiled against a different Node.js version using ~~のエラー
- (node:14412) ExperimentalWarning: The fs.promises API is experimental
× config.pluginSources.flatMap is not a function
TypeError: config.pluginSources.flatMap is not a function
    at buildDockerComposeConfig (PATH\TO\NODIST\Nodist\bin\node_modules\@wordpress\env\lib\build-docker-compose-config.js:20:44)
    at initConfig (PATH\TO\NODIST\Nodist\bin\node_modules\@wordpress\env\lib\env.js:316:30)

すぐに10.16.3でインストールした@wordpress/envがバージョンを切り替えたことで動いていないことに気付いたので、node_modulespackage-lock.jsonを削除して12.16.3環境下で改めてnpm i -D @wordpress/envを実行。

これでwp-env startすると動作しました。

当たり前と言えば当たり前ですが、うっかりするとまたやりかねないのでメモしておきます。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。