1. ホーム
  2. node.js

[解決済み] npmパッケージの依存関係にローカルモジュールを指定する方法

2022-03-24 14:58:34

質問

私は、パッケージ.jsonファイルのdependenciesで指定されたサードパーティモジュール(例えば'express')に依存する通常のセットを持っているアプリケーションを持っています。例えば、次のとおりです。

"express"     : "3.1.1"

私は、自分のコードをモジュール式に構成し、ローカル(現在いるファイルシステム上の意味)モジュールのセットをpackage.jsonによってインストールさせたいと思っています。ローカルモジュールをインストールするには、package.jsonを実行すればよいことは知っています。

npm install path/to/mymodule

しかし、package.jsonのdependencies構造でこれを実現する方法がわかりません。この場合 --save このコマンドのオプションは、単に "mymodule": "0.0.0" をpackage.jsonに追加しました(ファイルパスの場所を参照しない)。インストールしたバージョンを node_modules から削除し、package.json から再インストールしようとすると、失敗します(中央レジストリで "mymodule" を探し、ローカルで探さないからです)。

を指定する方法があると思います。 "dependencies": {} 構造体をファイルシステムのパスからインストールしたいのですが、その方法がわかりません。

他にこのような問題を抱えた方はいらっしゃいますか? ありがとうございます。

解決方法は?

npm install がサポートされました。

npm install --save ../path/to/mymodule

これを動作させるためには mymodule を持つモジュールとして構成する必要があります。 package.json . 参照 NodeJSモジュールの作成 .

npm 2.0では、ローカル依存性がネイティブでサポートされています。参照 同様の質問に対するdanilopopeyeの回答 . この質問はウェブ検索結果で非常に上位にランクされているので、彼の回答をここにコピーしておきました。

<ブロッククオート

この機能は、npmのバージョン2.0.0で実装されました。例えば

{
  "name": "baz",
  "dependencies": {
    "bar": "file:../foo/bar"
  }
}

以下のパスも有効です。

../foo/bar
~/foo/bar
./foo/bar
/foo/bar

アップデートの同期

以降 npm install <folder> はディレクトリ内のパッケージを現在のプロジェクトのシンボリックリンクとして追加し、ローカルパッケージへの変更は自動的に同期されます。