目次

Synopsis

npm link (in package dir)
npm link <pkg>
alias: npm ln

Description

Package linking は 2 段階のプロセスである。

最初に、パッケージフォルダ内の npm link は、npmlink コマンドを実行したパッケージにリンクするシンボリックリンクをグローバルフォルダ {prefix}/lib/node_modules/<package> 内に作成します。 npm link はグローバル接頭辞を使用していることに注意してください (値は npm prefix -g を参照)。

次に、他の場所で npm link package-name がグローバルにインストールされた package-name から現在のフォルダの node_modules/ へのシンボリックリンクを作成します。

package-nameはディレクトリ名ではなく、package.jsonから取ったものであることに注意してください。

パッケージ名には、オプションでスコープを前置することができます。

npm publish の tarball を作成する際、リンクされたパッケージはシンボリックリンクを解決して現在の状態に “スナップショット” されます。

たとえば:

cd ~/projects/node-redis # パッケージ ディレクトリに入る
npm link # グローバルリンクを作成
cd ~/projects/node-bloggy # どこか別のパッケージ ディレクトリに入る。
npm link redis # パッケージをリンクインストール

これで ~/projects/node-redis への変更が ~/projects/node-bloggy/node_modules/node-redis/ に反映されるようになります。

また、2 つのステップを 1 つにまとめてショートカットすることもできます。 たとえば、上記のユースケースをより短い方法で行うには:

cd ~/projects/node-bloggy # メインプロジェクトのディレクトリに入る
npm link ../node-redis # 依存先のディレクトリをリンク

2 行目は、次のようにするのと同じです:

(cd ../node-redis; npm link)
npm link redis

つまり、最初にグローバルリンクを作成し、次にプロジェクトの node_modules フォルダに globalinstallation ターゲットをリンクします。

この場合、パッケージ名 redis ではなく、ディレクトリ名 node-redis を参照していることに注意してください。

リンク先のパッケージにスコープ (scope 参照) がある場合、リンクコマンドにはそのスコープを含めなければなりません (たとえば

npm link @myorg/privatepackage

See Also

  • npm developers
  • package.json
  • npm install
  • npm folders
  • npm config
  • npmrc

コメントを残す

メールアドレスが公開されることはありません。