私はの違いを理解したと思った
npm link x
そして
npm install /local/path/to/x
元々、前者はxへのシンボリックリンクを作成し、後者はシンボリックリンクではなくxの個別のコピーをプロジェクトにインストールしたと思っていました。
しかし、私は最近、私の元の印象が間違っていたことに気付きました、そして、彼らは両方ともシンボリックリンクを使用しているようです-それで、2とそれの間に違いがありますか?
ミディアムに関する記事 アレックス・ミルズによる裸のレイアウト。
npm link x
およびnpm install /local/path/to/x
は次のとおりです。
大きな違いは、npm install /local/path/x
はpreinstall/postinstallフックを実行しますが、npm link x
しない。
npm link
はグローバルNPMスペースを使用し、npm install /local/path/x
ではない。 npm linkは、グローバル空間でxへのシンボリックリンクを作成し、次にyからnpm link xを呼び出すと、xへ直接ではなく、グローバルシンボリックリンクへのシンボリックリンクを作成します。異なるグローバルnode.jsバージョン(NVMなど)を使用している場合、これは重要な違いです。
npm install /absolute/path/x
はpackage.jsonを変更します、npm link x
ではない。
シンボリックリンクの代わりに新しいローカルコピーを取得するには、npm pack
、 そのようです:
tgz="$PWD/$(npm pack)"
cd <other project>
npm install "$tgz"
Cp/rsyncを使用することもできますが、インストールフックは実行されず、実行可能ファイルはnode_modules/.bin
...それは動作します。
npm link
npm link
npm link <folder>
上記のコマンドは両方とも、グローバルパッケージに<folder>
のシンボリックリンクを作成します。
npm link <folder>
は、現在のプロジェクトでもnode_modules
フォルダーに同じシンボリックリンクを作成します。これらの名前は、リンクしているフォルダー名ではなく、package.json
のプロジェクト名に基づいています
現在のプロジェクトのpackage.json
は変更されません。
ここのコードでわかるように、パッケージの依存関係は引き続きインストールされます
まとめると
npm install
npm install <folder>
はこれと少し異なります