インターネット老人おぢさん

【 #revealjs 】Macのhomebrewで入れたnodeのバージョンが新しすぎて古いpackage.jsonが使えない

最終更新:2021年03月04日 11時38分74秒(初公開:2021年03月04日 11時38分63秒

【 #revealjs 】Macのhomebrewで入れたnodeのバージョンが新しすぎて古いpackage.jsonが使えない

という事がありました。
要はnodejsのバージョンが新しすぎたため入らなかったという話なのでWindowsでも起こります。
ここでは、とりあえず何も気にせず入れたnodejsを安全にダウングレードする方法を考えます。

今使っているnodejsは消さない

これを意地でも守りますが、nodejs自体のバージョン管理をするなら、思い切って今の環境を捨ててしまう一手も考えておいた方が良いかも知れません。
これはphpやrubyやpythonとかにも言える事ですが、今実行しているバージョンでは使えない何かが必ず出てきますので、予め.envなどを使って管理しておくほうが無難です。

anyenvもある

プロジェクト管理でこれはやりすぎです。
○○envまで管理する必要はないと考えます。
私も今までプロジェクト保守のためにanyenvを使っていた事もありましたが、あまり恩恵を感じませんでした。
実行ファイルぐらいは管理したいですが、.envまで管理することはなかったです。

ただし、個人開発やR&Dでは絶大な威力を誇ります。

やること

  1. brew unlink node でnodeへのパスを削除(nodeは消さない)
  2. brew install anyenv でanyenv自体のインストール
  3. echo "eval $(anyenv init -)" >> ~/.zshrc でターミナルが開かれるたびにanyenvへのパスを生成させる
  4. nodenv install 14.16.0 で古いバージョンのnodejsをインストール
  5. nodenv global(or loal) 14.16.0 で実施するnodejsのバージョンを選択

以下、あとは普通にnpm使ったり色々やってください。
今回、nodejsのバージョンを14.16.0に指定しましたが、v10〜v14であれば動くと思います。
特に理由がなければ条件を満たす中で最新のv14.16.0を入れておくと良いと思います。

これでrevealjsを動かすことができます。

番外編・試したこと

MacとDockerは相性が悪いのか、Docker for Macがないとちょいちょい変な挙動が見られます。
dockerでnodeJSの環境を作ればよくね?とも思ったんですが、この挙動のせいで結構悩まされました。

© 2020-2021のむらやごろう(@elder_uncle)

当サイトの全てのコンテンツを転載・無断での引用もお断りしています。