Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
34
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@DNA1980

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

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

環境

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いい感じに通してくれること多いから忘れがちになるよね(

34
Help us understand the problem. What is going on with this article?
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
34
Help us understand the problem. What is going on with this article?