Node.jsのバージョン管理とnpmレジストリの切り替えを使いこなす
Juan Picado
2019年8月28日
0 分で読めます今年初めに公開したnpmのセキュリティに関する10のベストプラクティスガイドに続き、開発環境でNode.jsのバージョンやnpmレジストリを簡単に切り替える方法をさらに掘り下げていきます。
Nodeのバージョン管理ツール
Node.jsアプリケーションを開発する際、日々の作業に対応するために複数のNode.jsバージョンをインストールする必要があるかもしれません。たとえば、本番環境のバグを解決するときや、プロジェクトを切り替えるときなどです。そのたびに手動で作業するのは大変ですが、もっとよい方法があります。
Node Version Manager(nvm)は、Node.jsのバージョンを切り替えるためのツールです。開発環境で本番環境のバグを再現する際の手間を軽減できます。
デフォルトのインストール方法がサポートされているのはmacOSとLinux環境のみです。Windowsをお使いの場合は、必要な機能を備えたnvm-windowsをご確認ください。
CLIを使えば、次のコマンドを実行して任意のNode.jsバージョンをインストールできます。
簡単ですね!それでは、NVMが役立つ一般的なケースをいくつか見てみましょう。
チーム内で、メンバーによって使用しているNode.jsのバージョンが異なることがあります。しかし、これはよくあるミスで、チームの他のメンバーが使っているNode.jsバージョンではサポートされないコードをマージしてしまうなど、問題につながる可能性があります。チームで使用するバージョンを統一するには、`.nvmrc`ファイルを導入します。例:
$ echo "10" > ~/.nvmrc
ファイルを設置すると、チームメンバーがnvm installを実行した際に、記載されたバージョンが常にデフォルトで使用されます。また、別のバージョンを使っているメンバーがコードを提供するのを防げます。こうすることで、互換性のないNode.jsの機能をリリースしたり、アプリを壊すおそれのある構文を使ったりする事態を避けられます。インストール済みのものとは異なる、古いまたは新しいNode.jsバージョンでバグを再現する必要がありますか?NVMを使わずに複数のnpmバージョンをグローバルにインストールしておくのは、手動でのインストールが必要になるため大変です。一方、NVMなら別の`install`コマンドを実行するだけで、異なるバージョンを並行して使えるようになります。以下の例をご覧ください。
Node.jsを複数インストールし、それぞれに複数のグローバルnpmモジュールを導入している場合、Node.jsのバージョンを切り替えるたびに、それらのモジュールをすべて再インストールする必要があります。
簡単に解決する方法をご紹介します。
NPMレジストリ管理ツール
複数のレジストリを使う場合、NPM Registry Managerも便利なツールです。企業での開発では複数のレジストリを使うことがよくあります。また、個人でローカルのプライベートレジストリにverdaccioなどのツールを使う場合にも役立ちます。GitHubがパッケージレジストリを公開したことで、活用の機会はさらに増えています。
NRMは、次のような複数のレジストリを標準でサポートしています。
npmのセキュリティと生産性を高めるヒントについては、npmのセキュリティに関する10のベストプラクティスガイドのチートシートをご覧ください。
安全な開発を!



