Edited at

Node.js を入れて npm を使えるようになるまでの話


はじめに

こんにちは、フロントエンド勉強中の nanarya です。

最近 Macbook Pro を買いました。

薄っぺらいキーボードにもなかなか慣れないので練習も兼ねてちょっとしたメモ書きを。

新しい PC を買ったので、新たに環境構築をしなきゃいけなくなったんですが、ちょっと迷ったので調べたことを簡単に残しておこうと思います。

まだまだ駆け出しの身で、間違っているところもあるかと思いますので、見つけた際にはぜひご指摘ください。私と、これを見た同じ駆け出しの方の為になりますので何卒。

では、そろそろ本題。


npm を使いたいけど、そこまでが長いよね

最近 WEB のフロントエンドの実装も少しずつ触るようになって、なんとなく npm を入れた後は


  • webpack を使って

  • HTML は pug をコンパイル

  • CSS は sass とか stylus をコンパイル

  • JS は babel を使って ES6 で書く

というのが割りと今風なのかなって感じてます。

(実際皆さんの環境でどうなのかも気になりますね)

この辺りは以前に記事でまとめたのでよかったらどうぞ

じゃあ npm を入れるまではどうなんでしょう?

正直、一度入れてしまえばあまり意識しないと思いますが、そこまでに案外選択肢があるような気がします。

homebrew とか、 ndenv とかなんか色々ありますよね。

入れ方を間違えると、node がバージョン違いで喧嘩しちゃうみたいなので、導入時にちゃんと計画的に入れておくのが吉という感じがします。

その辺調べたことをまとめたお話です。


Node.js を入れる前に入れるパッケージの話

Node.js のインストールに使ったり、バージョンの管理ができるパッケージがあるようなのでそちらを確認していきましょう。


homebrew ってなんだろう

こちらをご覧ください(とても雑な説明)

「Mac OS Xオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつである」だそうです。

詳しく何かとかを書き出すとそれだけで記事になってしまうので、簡潔に書くと

インストールするためのソフトとでも思っていれば良さそうです。

npm は node package manager の略ですが、それの node のみに限らないもの、というイメージでしょうかね。

他の手段でインストールできるなら問題ありませんが、入れておくとインストールがとても便利になるものだと思われます。

おそらく現在でも多く使われているのではないでしょうか(ネットは個々の情報は多くありますが、新旧の見分けがつきづらいので新参者には辛いですよね)

homebrew について非常に良い分かりやすい記事が合ったのでリンクしておきますね


nodebrew ってなんだろう

名前的に homebrew の node 版っていうイメージですね。

こちらは1つのPCに複数のバージョンの Node.js を入れることができるようになるパッケージのようです。

これを入れることで、プロジェクトごとに node のバージョンを使いわけることができるという寸法ですね。

ただ、こちらおそらく次に紹介する ndenv の方が新しく、かつ高機能ではないかと思われますので、現在はそちらを使うのが良いのではないでしょうか。


ndenv ってなんだろう

基本的には nodebrew と同じく複数のバージョンの Node.js を使い分けられるものになります。ただ、利点として .node-version というデータをプロジェクトのディレクトリ内に入れておくと、自動で判別して node のバージョンを切り替えてくれるようです。

nodebrew にはこの機能はおそらくないようなので、今から環境構築するのであればこちらを使うのが良さそうです。

2019.6.14追記:開発が滞っており、現在は下のnodenvを使用するのが主流のようです。


nodenv ってなんだろう(2019.6.14追記)

現在、anyenvのリポジトリが変更となり、それに伴いanyenvではこちらをフォローすることになったようです。


同じようなものなのに複数存在するのは面倒ですが、今から使うのであればこちらが良さそうですね。


anyenv ってなんだろう

ndenv 等のバージョン管理ツールを言語ごとにまとめて管理できるものです。 phpenv(PHP) や rbenv(ruby) などが含まれます。


nvm っていうのもあるらしい

node version manager とてもわかりやすい名前ですね。

ただこちらは少し古いようで、どうも nvm => nodebrew => ndenv と移り変わっているという感じなんですかね。


で、結局何を使えばいいの?

制作するものや環境によって最適解は異なるかと思いますが、

基本的にはhomebrewを使ってndenvをインストールすればいいのかな、と思います。

他の言語も触ったりするようであれば、anyenv を入れてもいいかもしれないですね。

おそらく nodebrew や nvm あたりは今は出番がないんじゃないかと思います。


終わりに

こういったのって、記事の時系列とかに気をつけないと情報が古かったりもするので、新参者には勉強しづらいんですよね...

ご意見や情報があればコメントにていただけると幸いです。

それにしても、HTML と CSS と JS を書きたいだけなのに入れるものとか覚えることとか多すぎでしょ!!(メモ帳で HP 作っていた人間の感想)

あと、MBP の薄っぺらいキーボード、ちょっと文章書いたくらいじゃなかなか慣れないですね...