LoginSignup
44

More than 5 years have passed since last update.

Node.jsで、存在するはずのmoduleがrequireでエラーになることについて

Last updated at Posted at 2017-10-06

引っかかる人多そうなのと、備忘録として

環境

Mac(OS X)

問題

初めてのJavaScriptだー
$ npm -g install モジュール名
でmoduleをインストール。よっしゃサンプルプログラムを動かすでーと意気込んでいると

Error: Cannot find module 'モジュール名'

あの、、、、、
なんでかrequireのところでエラー起こるんですけど、、、、

原因

調べたところ、こんなものを見つけた。
http://phiary.me/npm-node-js-require-module-memo/
require で探すモジュールのパスは global.module.pathsから見れるらしい。

$node
>global.module.paths
[ 'e:/Users/hoge/Documents/work/node_modules',
  'e:/Users/hoge/Documents/node_modules',
  'e:/Users/hoge/node_modules',
  'e:/Users/node_modules',
  'e:/node_modules' ]

(上記の表示内容はphiaryさんのをまるっと持ってきました)

(ちなみに対話型の画面は.exitで抜けられます。←quit()連打して少し詰まった)

つまるところ、せっかく-gをつけてグローバルに使えるようにしたのにnode自体がそれどこ?状態な訳だ。
Win環境の時は散々気にしてたPATHが通っていないということだった。

解決法

ということでPATHを通そう

https://qiita.com/hikaruna/items/abdadca27f12c0e4eb78
ここを参考に
$ echo $NODE_PATH
と入力してみると、なんも返ってこなかった。やっぱり、、、

$ export NODE_PATH=`npm root -g`
と入力すると、うまく動いた!
(なお、これはnodeのPATHなので全体のPATHとは違うらしい。)

Mac使ってるとPATHいい感じに通してくれること多いから忘れがちになるよね(

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44