ローカルパッケージとグローバルパッケージの主な違いはこのようなものです。
- ローカルパッケージは
npm install <package-name>
を実行するディレクトリにインストールされ、このディレクトリの下のnode_modules
フォルダに置かれます - グローバルパッケージは、
npm install -g <package-name>
をどこで実行してもシステム内の 1 箇所にすべて置かれます (正確にどこにあるかは設定により異なります)。
require('package-name')
では、いつ、どのような方法でインストールすればよいのでしょうか。
一般に、すべてのパッケージはローカルにインストールされるべきです。
これにより、コンピュータ内に何十ものアプリケーションを持ち、必要に応じて各パッケージの異なるバージョンを実行することができます。
すべてのプロジェクトは、パッケージのローカルバージョンを持ちます。たとえこれがリソースの浪費のように見えても、起こりうる悪影響と比べれば最小限のものです。
シェル (CLI) から実行できるコマンドを提供し、それがプロジェクト間で再利用される場合、パッケージはグローバルインストールされるべきです。
よく知られているグローバルパッケージの例としては、
npm
create-react-app
vue-cli
grunt-cli
mocha
react-native-cli
gatsby-cli
forever
nodemon
などがあります。
おそらくあなたのシステムにはすでにいくつかのパッケージがグローバルにインストールされていると思われます。 コマンドラインで
npm list -g --depth 0
を実行すると、それらを確認することができます。