回答:
次の--prefixオプションを使用できます。
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
その後、パッケージがにインストールされ./install/here/node_modulesます。これmkdirは、npmがnode_modules階層の上位にある既存のディレクトリを選択する可能性があるためです。(フォルダーに関するnpmドキュメントを参照してください。)
npm install(パッケージ名なしで)のパスを指定する方法はありますか?私はこれを直接thiredが、その後のためのNPMルックスpackage.jsonの中で{prefix}。私が目指しているのはpackages.json、プロジェクトのルートをにさせ、同時にすべてのパッケージをにインストールできるようにすること{project root}/{project webroot}です。
npm installますが、--prefixそれは再帰を引き起こしていなかった場合は、よりよいソリューションのように思えます。
では文書は述べています:prefixオプションを使用するグローバルオプションと一緒に:
接頭ノードがインストールされている場所へのデフォルトをコンフィグ ほとんどのシステムでは、これは/ usr / localです。Windowsでは、これはnode.exeバイナリの正確な場所です。Unixシステムでは、nodeは通常{prefix} /node.exeではなく {prefix} / bin / nodeにインストールされるため、1レベル上になります。
ときにグローバルフラグが設定され、NPMはこのプレフィックスに物事をインストールします。設定されていない場合は、現在のパッケージのルート、またはパッケージ内にない場合は現在の作業ディレクトリを使用します。
(彼らによる強調)
したがって、ルートディレクトリに次のようにインストールできます
npm install --prefix <path/to/prefix_folder> -g
そしてそれはnode_modulesフォルダーにフォルダーをインストールします
<path/to/prefix_folder>/lib/node_modules
requireパッケージをグローバルにインストールすることはできませんか?
npmバージョン3.8.6以降、以下を使用できます
npm install --prefix ./install/here <package>
指定したディレクトリにインストールします。上位の階層にディレクトリがすでに存在するnode_modules場合でも、NPMは自動的にフォルダーを作成しますnode_modules。あなたも持つことができpackage.json、現在のディレクトリにしてから使用して、指定されたディレクトリにインストール--prefixオプションを:
npm install --prefix ./install/here
npm 6.0.0以降では、
npm install --prefix ./install/here ./
現在のディレクトリにあるpackage.jsonを「./install/here」ディレクトリにインストールします。Macで、node_modulesディレクトリ内の親フォルダへのシンボリックリンクを作成することに気づいたことがあります。しかし、それはまだ機能します。
注:NPMは、--prefixオプションで指定したパスを受け入れます。オプションなしでが使用された場合にのみ、フォルダーに関するnpmドキュメントに従って解決されます。npm install--prefix
Can't install <current directory>: Missing package name
package.jsonファイルが予期されるとおり機能しません./install/here