Help us understand the problem. What is going on with this article?

[Node.js] Node.js の導入(Windows編)

更新情報(2019年7月8日)

2019/07/08 現在、 nodist は v0.9.1 が最新です。
後述の nodist の導入 でもリンクを貼っておりますが、こちら から最新版のダウンロードができます。

なお v0.9.1 での動作確認を行なっておりませんので、本記事では本項目での「更新情報」としての紹介に留めさせていただきます。

本記事における以下の内容の動作確認環境は 確認環境 でも記しましたとおり、あくまで v0.8.8 となります。ご承知おきください。

注意

2018/09/20 現在、 nodist で npm をインストールした環境で次のコマンドを実行し、 npm のアップデートを行うとエラーが発生します。

問題となるコマンド(npmのアップデートを行う)
$ nodist npm match

エラーが発生の原因や対応については下記をご参照ください。

nodist を使った npm のアップデート

上記で挙げた $ nodist npm match は Node.js と npm のバージョンを対応させてくれるコマンドですが、これを使わずに npm のバージョンアップを行うこともできます。
その場合、後述の Node.js の導入 (nodist を介して) に記載の「6.npm のアップデートも行っておく」で示した方法で実現できますが、この方法だと Node.js と npm のバージョンを自動で対応させてくれません。
両者のバージョンを合わせたい場合は下記の一覧をもとにバージョンを指定してコマンドを実行してください。

確認環境

  • Windows10 Home 64bit
  • nodist v0.8.8
  • node v8.2.1 v9.2.1
  • npm v4.0.5 v5.6.0
  • git version 2.16.0.windows.2 環境下の Git Bash

Node.js

フロントエンド、バックエンド問わず、最近の JavaScript を使用した開発では Node.js の導入がデファクトとなっている。
Node.js を導入することで npm が利用できるようになり、 npm を利用することで Node.js で提供される JavaScript フレームワークやライブラリの導入が容易となる。

nodist

nodist は Node.js のバージョンを管理するツール。
これを入れることでバージョン単位で Node.js を導入することができ、状況に応じてバージョンを切り替えることができる。

バージョンを切り替えることができるメリット

npm パッケージは Node.js のバージョンに依存することが多い。
あるバージョンでは動いていたパッケージがあるバージョンでは動かない、ということがある。
このケースにおいて、 Node.js のバージョンを、 Node.js をインストールし直すことなく切り替えることができることは大きなメリットである。

nodist の導入

公式ページからインストーラをダウンロード

  1. 公式ページ(GitHub)
    https://github.com/marcelklehr/nodist

  2. インストーラのリンクをクリックして
    nodist01.png

  3. 最新版をダウンロードする
    nodist02.png

nodist のインストール

  1. インストーラに従ってインストール
  2. バージョン確認

    $ nodist -v
    0.8.8
    

Node.js の導入 (nodist を介して)

  1. インストール可能な Node.js のバージョンを確認

    $ nodist dist
      0.1.14
      0.1.15
      ~中略~
      9.1.0
      9.2.0
      9.2.1
    
  2. 任意のバージョンをインストール

    $ nodist + v9.2.1
    9.2.1 [===============] 22443/22443 KiB 100% 0.0s
    9.2.1
    
  3. インストールされている Node.js を確認

    $ nodist
      (x64)
      7.2.1
    > 7.10.0  (global: 7.10.0)
      8.2.1
      9.2.1
    
  4. Node.js のバージョンを切り替える

    $ nodist v9.2.1
    v9.2.1
    Default global pacakge update dsuccessful.
    
  5. 現在利用対象となっている Node.js を確認

    $ node -v
    v9.2.1
    
  6. npm のアップデートも行っておく

    1. 現在のバージョンを確認

      $ npm -v
      4.0.5
      
    2. アップデート

      最新版にする場合
      $ npm install npm -g
      
      バージョンを指定する場合
      $ npm install npm@5.6.0 -g
      
    3. 再度バージョンを確認

      $ npm -v
      5.6.0
      

npm をアップデートしたときの挙動に関する備忘録

  1. 通常のコマンドプロンプトと Git Bash とで挙動が異なる

    • [A] 通常のコマンドプロンプトの実行結果
      • アップデート処理終了後の npm -v の結果は 4.0.5 のままだった
    • [B] 確認環境 に示した Git Bash の実行結果
      • アップデート処理終了後の npm -v の結果は更新したバージョン( 今回は 5.6.0 ) となった
  2. npmv フォルダを削除したときの挙動が異なる
    通常のコマンドプロンプトでは nodist のインストール先にある npmv ( デフォルトだと C:\Program Files (x86)\Nodist\npmv )を参照しているようで、このフォルダを削除したときの npm -v は以下の結果となった。

    • [A]のケースでは

      $npm -v
      Sorry, there's a problem with nodist. Couldn't resolve npm version spec 4.0.5 : open C:\Program Files (x86)\Nodist/npmv: The system cannot find the file specified.
      
    • [B] のケースでは

      $ npm -v
      5.6.0
      

プロキシの設定(2017/08/28 追記)

nodist dist を実行した際に次のエラーが出るケースがある。

$ nodist dist
Could not read response for https://nodejs.org/dist/index.json
Could not read response for https://iojs.org/dist/index.json
Could not read response for https://nodejs.org/dist/index.json.
Sorry.

ネットワークに繋がっているにもかかわらずこういったエラーがでるのは、プロキシが通っていないケースが多い。
次のコマンドを実行してプロンプト上でプロキシを設定してやる。

$ set HTTP_PROXY=http://proxy.server.co.jp:8080

# ホスト名の proxy.server.co.jp は自分の環境にあわせて編集
# ポート番号の 8080 も自分の環境にあわせて編集

なお上記の設定は、実行しているコマンドプロンプト上でのみ有効な一時的な設定なので留意しておくこと。

Use the `--scripts-prepend-node-path`の対応

npm 実行時に

WARN
npm WARN lifecycle The node binary used for scripts is
C:\Program Files (x86)\Nodist\bin\node.exe but npm is using C:\Program Files (x86)\Nodist\v-x64\9.4.0\node.exe itself.
Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

上記 WARN が発生したら( 改行は筆者が行っている )

オプションセット
$ npm config set scripts-prepend-node-path true

してやれば良い。

終わり

ここまでの手順で Node.js とそれに付随して npm を利用する環境が構築できた。
あとは npm を使ってフロントエンドなりバックエンドなりの開発環境を整えれば良い。

ksh-fthr
フロントエンドは Angular, バックエンドは Express / axios / Sequelize 等を使ってましたが今は Rails で奮闘中。 最近 Vue.js も触り始めました。あと Docker 使って環境構築なんかにも手をだしてます。 モノをつくって共有、というよりはその過程で得たものを共有できればいいなぁと思ってます。 どうぞよろしくお願いします。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした