2017-12-10 30 views
-1

ちょうどノードを使い始める。私は、npm install -gオプションについて少し混乱しています。以下が正しければ、誰かが私に言うことができる:npm install -gオプションの理解

  • NPMは
  • にかかわらず、すべての依存関係をインストールする方法の特定のフォルダにパッケージをインストール
  • NPMがインストール-gは、一般的な場所でグローバルなパッケージをインストールする必要がインストール-gオプションでインストールされていません
  • 依存関係は、JSONファイル内にインストールした場合、たとえばので

ファイル適切な* .jsファイルに必要としてリストする必要が記載されています-gオプション:

var app = express(); 

とそうでない場合は-gオプションでインストール:パッケージには、すべてのアプリケーションから利用できるように-gでインストール

var express = require(‘express’); 
var app = express(); 

答えて

0

かなり混乱...

NPMには素晴らしいドキュメントがあります。あなたはそれを読みました?

モジュールを使用することに違いはありません。グローバルまたはプロジェクトローカルをインストールしても何も変更されません。

まず、モジュールをインポート/要求する必要があります。その後、それを使用することができます。

グローバルインストールとは、同じノードのインストールを使用するすべてのプロジェクトが必要とすることを意味します。

インストールがユーザーグローバルまたはシステムグローバルの場合、別の依存関係があります。

  • ユーザーグローバル:この1人のユーザーが実行しているプロジェクトのみが必要です。
  • システムグローバル:すべてのユーザーのすべてのプロジェクトに必要なものです。
+0

ドキュメントを読んでもわかりません。あなたは、あなたが意味することをより詳細に説明できますか?グローバルインストールは、同じノードのインストールを使用するすべてのプロジェクトがそれを要求できることを意味します。私はlocalhost上でノードを実行していますが、同じインストールはマシンまたはマシンとポート番号を意味しますか? – DCR

+0

これは実行時環境と関係があります。 NPMは、ノード/ NPM自体とHOME/USERPROFILEのインストールパスに基づいてファイル(.npmrc)とディレクトリ(node_modules)を検索しています。グローバルに関連するネットワークはありません。 – Markus

+0

@DCRノードまたはnpmは、ローカルホストまたはポート番号を認識しません。プロジェクトのために 'npm install foo'を実行すると、そのプロジェクトだけが(' require( 'foo') 'で)そのパッケージを使用することはできません。 'npm install -g foo'を実行すると、コンピュータ上のすべてのプロジェクトがそのパッケージを使用できます(' require( 'foo') ')。 – JJJ

2

がパスにアクセスできる場所にパッケージを置きますそれを必要とする。通常、独自のスタンドアロン実行可能ファイル(WebPackやExpress CLIなど)を持つユーティリティをインストールする場合にのみ、このオプションを使用します。

これは、アプリケーションでのパッケージの読み込み方法とはまったく関係ありません。それでもrequire()を使用する必要があります。

NPMは実質的にNode.jsから独立しています。 require()の仕組みに全く影響しないパッケージマネージャです。

関連する問題