ダウンロードしたモジュールリポジトリがあります。グローバルに別のディレクトリにインストールするのではなく、ローカルにインストールしますか。
これを行う簡単な方法は何ですか?
<folder>
にnpm install
引数を1つだけ指定すると、引数はパッケージ名ではなくローカルフォルダーを指すようになります。
npm install /path
ローカルモジュールディレクトリで:
$ cd ./package-dir
$ npm link
モジュールを使用するプロジェクトのディレクトリで:
$ cd ./project-dir
$ npm link package-name
あるいは相対パスを使って一度に:
$ cd ./project-dir
$ npm link ../package-dir
これは、内部で上記の2つのコマンドを使用するのと同じです。
同じ人から聞いてきたので、代わりに npmリンク を追加します。
ドキュメントから:
これはあなた自身のものをインストールするのに便利です、それであなたはそれに取り組んで、継続的に再構築する必要なしにそれを繰り返しテストすることができます。
cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency
[編集] NPM 2.0では、package.jsonでローカルの依存関係を宣言することができます。
"dependencies": {
"bar": "file:../foo/bar"
}
プロジェクトのスコープにのみインストールするピア依存関係がローカルモジュールにある場合、これらのアプローチ(npm link
またはpackage.json
ファイルの依存関係)はどちらも機能しません。
例えば:
/local/mymodule/package.json:
"name": "mymodule",
"peerDependencies":
{
"foo": "^2.5"
}
/dev/myproject/package.json:
"dependencies":
{
"mymodule": "file:/local/mymodule",
"foo": "^2.5"
}
このシナリオでは、npmはmyproject
のnode_modules/
を次のように設定します。
/dev/myproject/node_modules/
foo/
mymodule -> /local/mymodule
ノードがmymodule
をロードし、require('foo')
を実行すると、ノードはmymodule
シンボリックリンクを解決し、foo
の/local/mymodule/node_modules/
(およびその祖先)のみを検索します。見つかりません。代わりに、ノードが/local/myproject/node_modules/
を検索するようにします。これは、プロジェクトが実行された場所であり、foo
がインストールされている場所だからです。
したがって、ノードにnotを指示する方法が必要です。foo
を探すときにこのシンボリックリンクを解決するか、npmにcopyをインストールするように指示する方法が必要です。 mymodule
のpackage.json
でファイル依存構文が使用されている場合。残念ながら、どちらの方法も見つけられませんでした:(