2013-01-22 4 views

答えて

207

あなたは--prefixオプションを使用することができます。

mkdir -p ./install/here/node_modules 
npm install --prefix ./install/here <package> 

パッケージ(s)が、その後./install/here/node_modulesにインストールされます。 mkdirが必要です。それ以外の場合、npmは階層内の上位に既に存在するnode_modulesディレクトリを選択する可能性があるためです。 (npm documentation on foldersを参照してください。)documentation

+43

使用する場合は、この代替ディレクトリにpackage.jsonファイルが必要です。 --prefixオプション現在のディレクトリにpackage.jsonを置き、代替ディレクトリにインストールする方法はありますか? –

+2

@fractalその答えを見てください – HerrSerker

+6

@coundy 'npm install'(パッケージ名なし)のパスを指定する方法はありますか?私はこれを直接うんざりしていましたが、npmは '{prefix} 'の' package.json'を探します。私が目指しているのは、プロジェクトルートの 'packages.json'を' {project root}/{project webroot} 'にインストールすることです。 – automatix

25

それは述べています: はグローバルオプションと一緒にprefixオプションを使用します。

接頭設定のデフォルト値をノードがインストールされている場所へ。ほとんどのシステムの では、/usr/localです。 Windowsでは、これはnode.exeバイナリの正確な の場所です。 UNIXシステムでは、 というノードがあります。通常、ノードは {prefix} /node.exeではなく、{prefix}/bin/nodeにインストールされています。

グローバルフラグが設定されている場合、npmはこのプレフィックスに何かをインストールします。 設定されていない場合は、現在のパッケージのルートを使用します。すでにパッケージに含まれていない場合は、 現在の作業ディレクトリが使用されます。

(それらによって強調)

だからあなたのルートディレクトリにあなたは

npm install --prefix <path/to/prefix_folder> -g 

でインストールすることができ、それはのよう

<path/to/prefix_folder>/lib/node_modules 
+1

グローバルにインストールされたパッケージは 'require'できません。 – Pavlo

+2

@Pavloこれは役に立ちますか? http://stackoverflow.com/questions/15636367/nodejs-require-a-global-module-package – HerrSerker

+1

これを回答に追加する必要があります。 – Pavlo

13

フォルダにnode_modulesフォルダにインストールされますバージョン3.8.6、使用可能

npm install --prefix ./install/here <package> 

指定されたディレクトリにインストールします。上位の階層に既にnode_modulesディレクトリが存在する場合でも、NPMは自動的にnode_modulesフォルダを作成します。 ます。また、現在のディレクトリにpackage.jsonを持っているし、その後--prefixオプションを使用して、指定されたディレクトリにインストールすることができます。

npm install --prefix ./install/here 

注:NPMは、あなたが--prefixオプションで指定したパスを称えます。 npm documentation on foldersのように解決されます。ただし、--prefixオプションを使用しないでnpm installを使用した場合にのみ解決されます。

+1

これはうまくいかないようです。私はいつも ''現在のディレクトリをインストールできません::パッケージ名がありません '' –

+1

@TiborBlenessy 2番目のインストール文について話しているとします。現在のディレクトリに有効なpackage.jsonファイルがあることを確認してください。それでも動作しない場合は、npmのバージョンを教えてください。これらのステップは、指定されたnpmバージョンで動作するために使用されました。そして、彼らがもはやいなくなった場合、私は深く潜り込んで根本的な原因に挑戦し、私は代替策を考え出すことができます。 –

関連する問題