Edited at

Raspberry PiにNode.jsとnpmの最新版をインストールする

More than 1 year has passed since last update.

Raspberry Piでapt-getで入れたnpmを使っていて、@type/node などのTypeScriptのtypesパッケージを npm install しようとすると、 npm ERR! 404 'types/node' is not in the npm registry. のようなエラーが出てしまいました。

typesパッケージはnpm 3.xからサポートされているそうですが、記事投稿時(2017/07/23)にapt-getで入れたnpmのバージョンは1.4.21でした。


Raspbian

pi@raspberrypi:~ $ npm -v

1.4.21

また、npm 5.2.0からはnpxというローカルパッケージを手軽に実行できるコマンドが用意されたりしています。

npm 5.2.0の新機能! 「npx」でローカルパッケージを手軽に実行しよう

今回の記事では、Node.jsの最新版(正確には、Stable, LTS, Latestなど)とnpmの最新版を手軽にインストールできる方法を紹介します。


動作環境


  • Raspberry Pi 3 Model B, Raspberry Pi Zero W


    • Raspbian Jessie Lite 2017-07-05



    • Raspbian Stretch Lite 2017-09-07


      • イメージをMicroSDに書き込んだ後、MicroSDのルートディレクトリにsshという名前で空のファイルを作成






インストール

まず、SSH接続をしておきます(Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続するなどを参照)


Raspbian

sudo apt-get update

sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install npm n -g
sudo n stable

または、Gistにアップロードしたファイルを利用し、


Raspbian

curl -L https://git.io/v7kPb | bash


sudo n stable の部分を sudo n lts に変更すれば、Node.jsのLTS版(長期サポート版)がインストールされます

記事投稿時(2017/07/23)、Raspberry Pi Zero WではCPUがARMv6系であることに起因すると思われるエラーが出ておりました。

sudo n stableError: invalid version 8.6.0 といったエラーが出る場合は、 n ls

を実行して利用可能なバージョンを調べ、 sudo n 8.5.0 (8.6.0の前のバージョン)や sudo n lts を実行してみてください。

インストール後、バージョンの確認とパスが通っているかを確認します


Raspbian

pi@raspberrypi:~ $ node -v

v8.6.0
pi@raspberrypi:~ $ npm -v
5.4.2

(2017/08/01追記)

Raspberry Pi Zero Wにおいて、Error: invalid version 8.2.1 が出る時期がありましたが、Node.jsの v8.2.1 がインストールできるようになっていました

RPiZeroW_Node_8.2.1.png

(2017/10/08追記)

Raspberry Pi Zero Wにおいて、Error: invalid version 8.6.0 が出ていました。このような場合は、上記のように sudo n 8.5.0 などを実行してみてください。

また、古いバージョンのnpmが入ってしまった場合は、sudo npm install npm -g を実行してみてください。


参考サイト

第三回 Raspberry Pi 3に最新のNode.jsをインストールする