🖥️

Rapberry PiでのNode.jsのバージョン管理ツールについて

2022/12/31に公開

はじめに

Raspberry piをサーバーにして、Next.jsでつくったWebアプリケーションを動作させる機会がありました。そのとき、デフォルトでインストールされていたNode.jsのバージョンが古く、Next.jsが動作しませんでした。そこで、Node.jsのバージョン管理をする必要がでてきました。
これまで惰性でNode.jsのバージョン管理ツールはnodebrewをつかっていました。
https://github.com/hokaccha/nodebrew

しかし、下記の理由でバージョン管理ツールを見直すことにしました。

  • (個人的に)導入が大変
  • ツールのメンテナンス頻度が低い
  • プロジェクトの作業ディレクトリごとにバージョンを切り替えるのがめんどくさい

なので、バージョン管理ツールを見直す要件として

  • 導入が簡単なこと
  • ツールのメンテナンス頻度が高い
  • 容易にプロジェクトの作業ディレクトリごとにバージョンを切り替えることができる

です。

結論から述べると、fnmが要件をみたしました。

https://github.com/Schniz/fnm

Node.jsのバージョン管理ソフトの一覧

下記の記事で、「現行のバージョン管理ツールを比較してみる」に一覧がまとまっており、参考になりました。

https://qiita.com/heppokofrontend/items/5c4cc738c5239f4afe02

検討してみたバージョン管理ツール

下記の3つを試しました。
nは聞いたことがあり、voltaとfnmはRust製で新進気鋭な印象を受けたというのが選定理由です。

  • n

https://github.com/tj/n

  • volta

https://volta.sh/

特徴は下記の記事がよくまとまっていました

https://zenn.dev/taichifukumoto/articles/how-to-use-volta

  • fnm

https://github.com/Schniz/fnm

実際に導入してみてわかったこと

n

インストールしたあと、パスを通すことがうまくいかず、使用を断念しました。
同様のことを言及した記事が見つかりました。
そのため、nは検討から外しました。

https://www.ultra-noob.com/blog/2020/164/

volta

voltaは「x86_64 architectures」に対応していないため、Raspberry Pi OS上では動作させることができませんでした。
voltaのGithub issuesにも取り上げられています。
https://github.com/volta-cli/volta/issues/1190

fnm

fnmは導入は手順通りで、3つの中で1番つまづくことがありませんでした。
また作業ディレクトリ内のルートディレクトリに.node-versionファイルをつくり適用したいNode.jsのバージョンを書くだけでバージョンが切り替わります。お手軽ですね。

おわりに

今後、voltaもRaspbbery Pi上で使うことができるようになるかもしれません。
いまのところRaspberry PiでのNode.jsのバージョン管理はfnmを使っていこうと思います。

Discussion