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

npmのグローバルインストールとローカルインストール

グローバルインストール

こんな感じ

npm install -g bower

こちらの記事

npmのインストール場所にパッケージをインストールします。
付けない場合は,カレントディレクトリのnode_modules内にインストールされます。

グローバルインストールはそうなんですけれど、私の場合はnodebrewでnodeとnpmを入れているので、

npm list -g
/Users/teru1/.nodebrew/current/lib

ここ配下にnode_modulesがあり、ここにインストールされている様子です。これはよくわかりました。

ローカルインストール

こちらの記事にはローカルインストールはカレントディレクトリのnode_modules内にインストールと書いてあるので、
ホームディレクトリ配下にディレクトリ作って、そこでnpm installやったんですけど、
そのディレクトリの親であるホームディレクトリのnode_modulesにインストールされました。どうしてそんなディレクトリがあるのかといいますと、前にここでnpm installとかやった時に作られたものなのでしょう。

親ディレクトリにnode_modulesディレクトリがある場合はそこにインストールされる?

試す

親にnode_modulesディレクトリが無いディレクトリにて

$ pwd
/Users/Shared

↑この階層内にはnode_modulesディレクトリはありません

↓ディレクトリ作って、移動して、install

$ mkdir sample_npm
$ cd sample_npm/
$ npm install bower

↓node_modulesが作られて、そこにインストールされた!

$ ls
total 0
drwxr-xr-x  3 teru1  wheel  102  5 27 17:01 ./
drwxrwxrwt  8 root   wheel  272  5 27 17:01 ../
drwxr-xr-x  4 teru1  staff  136  5 27 17:02 node_modules/

親にnode_modulesディレクトリを作って

さっきの始まりと同じ状態にして、/Users/Sharedにnode_modulesディレクトリを作成します。

$ pwd
/Users/Shared
$ mkdir node_modules
$ ls
total 16
drwxrwxrwt  8 root   wheel   272  5 28 11:45 ./
drwxr-xr-x  5 root   admin   170 11  9  2013 ../
-rw-r--r--@ 1 teru1  wheel  6148 12 14 01:21 .DS_Store
-rw-r--r--  1 root   wheel     0  8 25  2013 .localized
drwxrwxrwx@ 5 teru1  wheel   170 11 10  2013 SC Info/
drwxr-xr-x  6 root   wheel   204 11 17  2013 SplashtopStreamer/
drwxrwxrwx@ 2 teru1  wheel    68 11  9  2013 adi/
drwxr-xr-x  2 teru1  wheel    68  5 28 11:45 node_modules/

↓ディレクトリ作って、移動して、install

$ mkdir sample_npm
$ cd sample_npm/
$ npm install bower

↓ここにディレクトリは出来ない

$ ls
total 0
drwxr-xr-x  2 teru1  wheel   68  5 28 11:47 ./
drwxrwxrwt  9 root   wheel  306  5 28 11:47 ../

mkdirで作った上の階層のnode_modulesにインストールされたようです。なるほど。

$ ls ../node_modules/
total 0
drwxr-xr-x   4 teru1  wheel  136  5 28 11:48 ./
drwxrwxrwt   9 root   wheel  306  5 28 11:47 ../
drwxr-xr-x   3 teru1  wheel  102  5 28 11:48 .bin/
drwxr-xr-x  18 teru1  staff  612  5 28 11:48 bower/
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