1. ホーム
  2. ジャバスクリプト

[解決済み】なぜグローバルとローカルにgulpをインストールする必要があるのですか?

2022-03-30 04:13:39

質問

2つのマニュアルについて ガブ飲み によると、まずグローバルに(-gフラグで)gulpをインストールし、次にローカルにもう一回インストールする必要があるそうです。なぜこれが必要なのでしょうか?

解決方法は?

ツールをグローバルにインストールすると、ユーザーはノード・プロジェクトの外も含め、どこでもコマンドライン・ユーティリティとして使用できるようになります。ノード・プロジェクトのグローバル・インストールは 悪い デプロイを難しくしてしまうからです。

npm 5.2+

npx にバンドルされているユーティリティです。 npm 5.2 がこの問題を解決してくれます。これを使えば、ローカルにインストールされたユーティリティをグローバルにインストールされたユーティリティのように呼び出すことができます(ただし、コマンドの冒頭に npx ). 例えば、ローカルにインストールされた eslint とすることができます。

npx eslint .

npm < 5.2

で使用する場合 script フィールドを作成します。 npm 検索 node_modules は、グローバルにインストールされたモジュールと同様に、ツールのためのものなので、ローカルインストールで十分です。

ということで、(package.jsonで)満足しているのであれば。

"devDependencies": {
    "gulp": "3.5.2"
}
"scripts": {
    "test": "gulp test"
}

などで実行し npm run test であれば、グローバルインストールは全く必要ないはずです。

どちらの方法も、プロジェクトのセットアップに便利です。 sudo は必要ありません。また gulp は、package.jsonでバージョンが上がったときに更新されるので、あなたのプロジェクトで開発するときに誰もが同じバージョンのgulpを使用することになります。

追記

gulpはグローバルに使用した場合、少し変わった挙動をするようです。グローバルインストールで使用する場合、gulpはローカルにインストールされたgulpに制御を渡すために探します。したがって、gulpのグローバルインストールは、動作するためにgulpのローカルインストールを必要とします。しかし、上記の回答はまだ有効です。ローカルインストールは常にグローバルインストールより望ましいです。