MENU

サーバーサイドローカル環境JavaScript

【Node.js】 Windows上で動作させるための設定知識

更新日:2021/05/26

 

インストール

 

Windows版のNode.jsのインストールは、基本的にインストーラーでおこないます。

 

インストールの方法は次の記事で紹介しているので、そちらを読んでみてください。
【Node.js】 Windows10にインストールしてブラウザ表示するまでの要点メモ

 

インストーラーを使用しないで、WindowsにNode.jsを設置することもできます。
Node.jsダウンロードページからWindows Binary (.zip)をダウンロードして任意フォルダに展開し、次項以降で紹介している設定を行ってください。

 

Node.jsはサーバーサイドJavaScriptと解説されているため、Web関連の処理をおこなうものと誤認される傾向があります。
本質は、JavaScriptコードを読み込み処理をおこなう、コマンドライン上で動作する実行ファイルです。

 

コマンドライン上で動作するため、ファイルシステムやネットワークにアクセスできますが、Node.js自体はスクリプトを処理しているだけということを念頭に置いておきましょう。

Node.jsを動作させるために必要な設定

 

  1. インストール先フォルダを環境変数PATHに追加する
  2. npmrcファイルを作成する
  3. 環境変数NODE_PATHを設定する

 

1.について

 

インストーラーでNode.jsをインストールした場合、自動でPATHを設定してくれるので1は必要ありません。
Node.jsのzipを展開してインストールした場合は、次項の動作に必要な実行ファイルを参考にして、PATHを設定してください。

 

2.について

 

インストーラーでNode.jsをインストールした場合、パッケージのグローバルインストール先として C:\Users\ユーザー名\AppData\Roaming\npm が使用されます。
しかしNode.jsのzipを展開してインストールした場合は、npm.cmdの実行フォルダ内のnode_modulesが使用されます。インストーラーと同じフォルダを使用する場合、npmrcファイルを作成する必要があります。

 

ファイル名:Node.jsフォルダ\node_modules\npm\npmrc
(同じフォルダ内に .npmrc というファイルがあるので間違えないようにしてください。

 

内容:prefix=${APPDATA}\npm

 

npmrc

 

 

3.について

 

NODE_PATHは、パッケージをグローバルインストールした後、スクリプトで使用するために必要な環境変数です。
しかし、インストーラーは設定してくれません。

 

NODE_PATHについてはモジュールインストールとパスの最後で簡単な解説をしているので、参考にしてみてください。

動作に必要な実行ファイル

 

Node.jsをインストールすると、インストール先フォルダ内に次のようなファイルが展開されます。

 


インストール先フォルダ
    ┃
    ┣ <node_modules>(フォルダ)
    ┃
    ┣ install_tools.bat
    ┃
    ┣ node.exe
    ┃
    ┣ node_etw_provider.man
    ┃
    ┣ nodevars.bat
    ┃
    ┣ npm
    ┃
    ┣ npm.cmd
    ┃
    ┣ npx
    ┃
    ┗ npx.cmd

 

いろいろありますが、重要なのが次の二つです。

 

  1. node.exe : Node.jsの実行ファイル
  2. npm.cmd : パッケージ管理をおこなうスクリプト( npm-cli.js )を検索し、node.exeで実行するWindowsのバッチファイル

 

npm-cli.jsは、node_modulesフォルダ内のnpm\binにあります。

 

 

どのディレクトリからでもnode.exeとnpm.cmdを実行できるように、環境変数PATHにインストール先フォルダを追加する必要があります。

 

ただしインストーラーでNode.jsをインストールした場合、自動で環境変数PATHの設定をしてくれます。

 

環境変数PATHの解説や変更方法は、次の記事を見てください。
Windows10でPathなどの環境変数を設定する

 

モジュール

 

JavaScriptとは一般的にはECMAという標準化機関が制定しているECMAScriptを元に作成したスクリプトコードまたは、そのスクリプトコードを読み込み実行する環境を指します。

 

 

ECMAScriptは配列や基礎的な数値演算など内部的にデータを扱う機能が定義されていますが、それ以外の例えばファイル入出力などの機能は実装側(JavaScript実行環境の作成者)が独自または他の仕様を取り込んで定義します。

 

Node.jsではこれらの追加機能をモジュールと呼んでいて、ECMAScriptの組み込みオブジェクトとは区別され、呼び出し方法が異なります。

 

組み込みオブジェクトは、直接実行できます。

 


 // Mathオブジェクトのfloorメソッドで整数化
const data = Math.floor( 3.5 );

 

モジュールを呼び出すときは、requireを使用します。

 


  // fsモジュールを呼び出す
const fs = require("fs");

 // ファイルが存在するかチェック
if( fs.existsSync( "text.txt") ) console.log( "ファイルあり" );

 

Node.jsの実行ファイルnode.exeにはあらかじめモジュールが組み込まれていて、これらは組み込みモジュールと呼ばれています。

 

組み込みモジュールは、Node.jsが用意しているAPI リファレンスで確認できます。
https://nodejs.org/ja/docs/

 

また、第三者が作成したモジュールをnpmレジストリサービスを利用してダウンロードすることができます。

 

これらのモジュールを使用する場合も組み込みモジュールと同様に、requireを使用します。

モジュールインストールとパス

 

モジュールのインストールには、カレントフォルダにダウンロードするローカルインストールと、特定のフォルダにインストールするグローバルインストールの2種類あります。

 

ローカルインストール

 

npmレジストリサービスを利用してモジュールをダウンロードする場合、次のようにnpm.cmd を実行します。

 

インストールコマンド

 

npm install パッケージ名

 

モジュールは動作に必要なファイルを一つにまとめたパッケージとしてダウンロードされます。
そのため、インストールはパッケージ名を指定します。

 

実行すると、カレントフォルダにnode_modulesフォルダが存在しない場合は作成され、そのフォルダ内にダウンロードされます。

 

例えば次のコマンドを実行すると、c:\Users\aaa\Desktop\node_modulesフォルダ内に、画像処理モジュールsharpがダウンロードされます。

 


c:\Users\aaa>cd Desktop ← Desktopに移動

c:\Users\aaa\Desktop>npm install sharp ← パッケージインストール

c:\Users\aaa\Desktop>dir node_modules\sharp 
 (省略) ← node_modulesが作成され、その中にインストールされた
2021/05/26  16:28    <DIR>          .
2021/05/26  16:28    <DIR>          ..
 (省略)

 

ただし、親フォルダにnode_modulesフォルダがある場合、そちらにインストールされます。

 


c:\Users\aaa>dir node_modules 
 (省略) ← 親フォルダにnode_modulesがある
 2021/05/26  16:28    <DIR>          .
 2021/05/26  16:28    <DIR>          ..
 (省略)

c:\Users\aaa>cd Desktop ← Desktopに移動

c:\Users\aaa\Desktop>npm install express ← パッケージインストール

c:\Users\aaa\Desktop>dir node_modules
 (省略)  ← node_modulesが作成されなかった
ファイルが見つかりません
 (省略)

c:\Users\aaa\Desktop>dir ..\node_modules\express
 (省略) ← 親フォルダのnode_modulesにインストールされていた
2021/05/26  16:28    <DIR>          .
2021/05/26  16:28    <DIR>          ..
 (省略)

 

 

グローバルインストール

 

特定のフォルダにインストールすることで、全てのスクリプトから共通的にモジュールを呼び出すことができます。

 

npmレジストリサービスを利用してモジュールをグローバルインストールする場合、次のようにnpm.cmd を実行します。

 

インストールコマンド

 

npm install -g パッケージ名

 

-gを付加することで、グローバルインストールされます。

 

インストール先の確認は、次のコマンドを実行します。

 

グローバルインストールパスを確認

 

npm root -g

 

なお、Node.jsをインストーラーでインストールした場合と、zipを展開してインストールした場合ではグローバルインストールパスが異なります。

 

一致させたい場合は、こちらを見てください。

 

パスの検索順確認と変更

 

requireは指定したモジュールを、いくつかのフォルダ内から探してきます。

 

対象となるフォルダは、次のようにして確認できます。

 


c:\Users\aaa>cd Desktop ← カレントフォルダを変更

c:\Users\aaa\Desktop>node ← nodeを実行
Welcome to Node.js v14.17.0.
Type ".help" for more information.
>module.paths ← 入力してエンター
[
  'C:\\Users\\aaa\\Desktop\\repl\\node_modules',
  'C:\\Users\\aaa\\Desktop\\node_modules',
  'C:\\Users\\aaa\\node_modules',
  'C:\\Users\\node_modules',
  'C:\\node_modules',
  'C:\\Users\\aaa\\.node_modules',
  'C:\\Users\\aaa\\.node_libraries',
  'C:\\Program Files\\nodejs\\lib\\node'
]
>

 

module.pathsは、パスの検索順を配列で保持しています。

 

もし、他のパスを検索候補にいれたり順番を変更したい場合は、通常の配列操作と同じようにpushメソッドなどを使用してください。

 

グローバルパスの追加

 

前項のパスの検索順には、グローバルインストール先のパスが含まれていません。
そのためグローバルインストールしたモジュールは、デフォルト状態では使用できません。

 

ということで、module.pathsにグローバルインストール先のパスを追加しましょう。

 

方法としては、次のような方法があります。

 

スクリプトコード内


module.paths.push( グローバルインストール先のパス );

 

しかし、他の環境への可搬性が損なわれてしまうので、これは非推奨です。

 

そこで、NODE_PATHという環境変数にグローバルインストール先のパスをセットしておきます。
すると、node.exeがその値を読み取って、module.pathsに追加してくれます。

 


C:\Users\aaaa\Desktop>npm root -g ←グローバルインストール先を確認
C:\Users\aaaa\AppData\Roaming\npm\node_modules

                             ↓NODE_PATHをセット
C:\Users\aaaa\Desktop>set NODE_PATH=C:\Users\aaaa\AppData\Roaming\npm\node_modules

C:\Users\aaaa\Desktop>node
Welcome to Node.js v14.17.0.
Type ".help" for more information.
> module.paths
[
  'C:\\Users\\aaaa\\Desktop\\repl\\node_modules',
  'C:\\Users\\aaaa\\Desktop\\node_modules',
  'C:\\Users\\aaaa\\node_modules',
  'C:\\Users\\node_modules',
  'C:\\node_modules',
  'C:\\Users\\aaaa\\AppData\\Roaming\\npm\\node_modules', ←追加されている
  'C:\\Users\\aaaa\\.node_modules',
  'C:\\Users\\aaaa\\.node_libraries',
  'C:\\Program Files\\nodejs\\lib\\node'
]
>

 

環境変数をWindowsに追加する方法は、次の記事をご覧ください。
Windows10で環境変数を追加・変更する方法

Node.jsで遊ぼう!

 

サーバーサイドとかフロントとかバックエンドとかそんな細かいことはどうでもいいんだ、とにかく動かして遊びたいんだ。

 

そんな方向けに、この記事を書いてみました。

 

これで、「ネットの記事見てインストールしてみた。なんだかよくわからないけれど、Node.jsが動いた」という状態から卒業できると思います。

 

実際のところ、Node.jsはWindows上で気軽に動作できるスクリプト言語です。
サーバーサイドという印象だけで、Windowsを否定してはダメです。

 

個人的には、一括処理したい場合などにとても便利に活用しています。

 

もっといろいろ試して、遊び感覚でスクリプトを組んでいきましょう!

けーちゃんおススメJavaScript入門書

  • スラスラ読める JavaScript ふりがなプログラミング
  • プログラム未経験者がJavaScript始めるならコレ!
    コードを掲載して自分で理解しろという投げっぱなしな入門書とは異なり、コードに一つ一つどんなことをやっているかをふりがなという形式で解説しています。
    それでいてJavaScriptの基礎と応用を学べる良書です。
  • これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん
  • JavaScriptの機能を実践で活かすにはHTMLやCSSの知識が不可欠です。
    しかしそれらの知識があることが前提として書かれている書籍が多い中、この本は総合的な知識を身に着けることができます。
    HTMLやCSSの知識も不安な方には、ぴったりの一冊です
  •  

    入門書の役割は、自分のやりたいことをネットで調べることができるようになるための、基礎的な知識の獲得です。
    まずはこれらの本でしっかりと基礎知識を身につけましょう。
    そしてもっと高度なことや専門的なことはネットで調べ、情報が足りないと感じたら書籍を購入してください。


    期間限定情報:
    6/21と6/22は年に一度のプライム会員大感謝祭!
    欲しかったアレが安く手に入るチャンスです
    忘れずにチェックしてください!
    僕は以前のタイムセール祭りで4Kモニタが買ったけど、それより安かったらどうしよう・・・

    ちなみにプライム会員でなくても、無料体験で参加できるようです。
    欲しい商品があるか、確認だけでもしておきましょう。

    記事の内容について

     

    こんにちはけーちゃんです。
    説明するのって難しいですね。


    「なんか言ってることおかしくない?」
    たぶん、こんなご意見あると思います。

    裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。

    そんなときは、ご意見もらえたら嬉しいです。

    ご意見はこちら。
    https://note.affi-sapo-sv.com/info.php

    【お願い】

    お願い

    ■このページのURL


    ■このページのタイトル


    ■リンクタグ


    ※リンクして頂いた方でご希望者には貴サイトの紹介記事を作成してリンクを設置します。
    サイト上部の問い合わせよりご連絡ください。
    ただしサイトのジャンルによっては、お断りさせていただくことがあります。