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