macOSでNode.jsを利用する:バージョン管理はnvm

投稿者: | 2021年8月10日

Macでnodejs+nvm

最近はmobile開発でもnode.jsをなんらかの形で利用する必要があることが増えた。serverlessでフルスタックというのはAWSなどのクラウドを利用するものがほとんどである。LinuxやWindows Serverというフル機能を備えたServerをおかず、機能ごとに寄せ集めで構成するMicroservicesも少なくない。そういった時にしばしば使われるのがNode.jsである。

このNode.js、Mobile並に更新が早い。そこでバージョン管理が必要になる。そのためのソフトウェアがnvmである。今回はそれをmacOSに導入する。普段Android StudioやXcodeを中心に扱っているだけでOS周りの操作に慣れていない人には簡単ではないと思う。

以下の手順に従ってやればいい。

  1. nvmのインストール
    % brew update
    # 必要に応じて
    % brew upgrade
    
    % brew install nvm
    
  2. nvmの設定
    • zshrcに以下の3行を追加する。
      export NVM_DIR="$HOME/.nvm" 
      [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
      [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion
      
      
    • 確認:新たなターミナルウインドウを開くと
      zsh compinit: insecure directories, run compaudit for list.
      Ignore insecure directories and continue [y] or abort compinit [n]?
      

      の警告が出るかもしれない。一旦yで抜けnvm –helpを実行すると最初にNode Version Manager (v0.38.0)と表示されてヘルプが表示される。警告が出なければいいが出た場合の対応策は次のようになる。

    • 警告対策
      % compaudit
      There are insecure directories:
      /usr/local/share/zsh/site-functions
      /usr/local/share/zsh
      
      % ls -la /usr/local/share/zsh/site-functions
      drwxrwxr-x  6 userID  admin  192  8 10 09:53 .
      drwxrwxr-x  3 userID  admin   96  7 19  2020 ..
      
      % chmod g-w /usr/local/share/zsh/site-functions
      
      % compaudit                                    
      There are insecure directories:
      /usr/local/share/zsh
      
      % chmod g-w /usr/local/share/zsh
      
      % compaudit
      % (何も返ってこない、つまり警告なし)
      
  3. nvmでnodeの最新LTSを調べる(2021/8/10)
    % nvm ls-remote | grep 'Latest'
         v4.9.1   (Latest LTS: Argon)
        v6.17.1   (Latest LTS: Boron)
        v8.17.0   (Latest LTS: Carbon)
       v10.24.1   (Latest LTS: Dubnium)
       v12.22.4   (Latest LTS: Erbium)
       v14.17.4   (Latest LTS: Fermium)
    

    ちなみにLatestの文字が入っているのはLTS系のみなので他のバージョンはgrep ‘v15’などとやって検索する。

  4. nodeのインストール、利用
    nvm install v14.17.4
    nvm use v14.17
    # 今すぐやるならこれは以下と同じことになる。
    nvm install --lts
    nvm use --lts
    # LTS以外も含めた本当に最新版なら
    nvm install node
    nvm use node
    

    その他の選択肢についてはHelpのExampleセクションに例があるので参照してほしい。

まとめ

今回はNode.js+nvmの環境をmacOSに構築した。Node.jsは言わずと知れたJavaScriptの動作プラットフォームである。

自分はmobileのNative開発だからJavaScriptはいらない、なんていうのはもう過去の話である。ServerlessでCloud Nativeのアプリ開発ともなればクライアントであるmobile側でもNode.jsを扱わなければならない事は増えこそすれ減る事はないなろう。

コメントを残す