10326


似たようなワードプレスのウェブサイトを沢山運用しているのですが、  
どのテンプレートのフォルダにも全く同じ構成のnode_modulesが重複して存在しており  
無駄にローカルのディスク・スペースを消費しています。

毎回同じgulpfileを使っているので、gulpパッケージはグローバルにインストールして  
使おうと試してみたのですが、グローバルにインストールされたパッケージはなぜか  
notfoundとなり、gulpが認識してくれませんでした。  
requireに絶対パスを指定してみたり、いろいろ試してみたのですがダメでした。

gulpパッケージはローカルにインストールしなければいけないのでしょうか？  
あるいは、私の方法が間違っているのでしょうか？  
とりあえず、各プロジェクトのフォルダにnode_modulesのシンボリックリンクを  
作って対応しようかと思っていますが、何か他によい方法があれば、ご教唆願います。

よろしくお願いします。


CC BY-SA 3.0
2015-05-18T11:28:00.717
10322
2015-05-18T12:52:44.300
9092
question
gulp npm
gulpのパッケージをグローバルにインストールして利用することはできるのでしょうか？


プロジェクトによって使うモジュールのバージョンが違う際の問題を回避するため、 npm では原則として `require()`
するものはローカルにインストールするようになっています。

一方 grunt や gulp のようなツールはグローバルにインストールすることが多いのですが、これもプロジェクトごとに Gruntfile や
gulpfile 、あるいはそこで使われるプラグインとの互換性問題が発生しうるということで、本体もローカルにインストールする方法を選択したようです。

参考 [gulpのアプローチ "なぜグローバルとローカルにインストールが必要なのか" |
じまぐてっく](http://nakajmg.github.io/blog/2014-09-03/gulp-structure.html)

node_modules をシンボリックリンクにしたり、 [NODE_PATH
を変更する](https://ja.stackoverflow.com/a/9301)ことで丸ごと共有することはできますが、前述のようにバージョン問題に注意が必要です。個人的には、
`npm install` せずに済んでしまうことで、package.json に書き忘れそうだなと思ったり。

思い付きですが、毎回同じ gulpfile を使うのであれば、いっそ package.json や gulpfile
の置かれたディレクトリごと共有するのもありかもしれませんね。


CC BY-SA 3.0
2015-05-18T12:52:44.300
10326
2015-05-18T12:52:44.300
2017-04-13T12:52:39.113
-1
8000
10322
answer