回答:
次の--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