アプリケーションのnode_modulesディレクトリを移動して、bowerがbowerrcファイルで行うように/ vendor / node_modulesと言う方法はありますか?package.jsonで指定できると思いましたが、解決策が見つからないようです。あなたの助けは大歓迎です。
node_modules
でpackage.json
、かつxShiraseの答えは単純にそれを行うための方法を提供していません。
アプリケーションのnode_modulesディレクトリを移動して、bowerがbowerrcファイルで行うように/ vendor / node_modulesと言う方法はありますか?package.jsonで指定できると思いましたが、解決策が見つからないようです。あなたの助けは大歓迎です。
node_modules
でpackage.json
、かつxShiraseの答えは単純にそれを行うための方法を提供していません。
回答:
はい、できます。NODE_PATH環境変数を設定するだけです。
export NODE_PATH='yourdir'/node_modules
ドキュメントによると:
NODE_PATH環境変数がコロンで区切られた絶対パスのリストに設定されている場合、ノードはそれらのパスでモジュールが他に見つからない場合はそれらのパスを検索します。(注:Windowsでは、NODE_PATHはコロンではなくセミコロンで区切られます。)
さらに、ノードは次の場所を検索します。
1:$ HOME / .node_modules
2:$ HOME / .node_libraries
3:$ PREFIX / lib / node
ここで、$ HOMEはユーザーのホームディレクトリであり、$ PREFIXはノードで構成されたnode_prefixです。
これらは主に歴史的な理由によるものです。依存関係をnode_modulesフォルダーにローカルに配置することを強くお勧めします。それらはより速く、より確実にロードされます。
process.env
要するに:それは不可能であり、サポートされることはないようです(https://github.com/npm/npm/issues/775を参照)。
CLIまたはENV-Variables(現在選択されている回答を参照)、. npmrc-Config-Files、またはnpm link
-それらすべてに共通するものを使用すると、いくつかの厄介な回避策があります。これらはプロジェクト固有ではなく、常に何らかの種類です。global
ソリューション。
私にとって、これらのソリューションはどれも本当にクリーンなものではありません。プロジェクトへの貢献者は常に特別な構成を作成するか、特別な知識を持っている必要があるからnpm install
です。
つまり、package.jsonをnode_modulesをインストールするのと同じディレクトリに配置するか、プロジェクトのroot-dirに常に存在するという事実を維持する必要があります。
これがあなたの考えていることかどうかはわかりませんが、node_modules
シンボリックリンクをサポートしていないファイルシステム(VMの「共有」フォルダー)にマウントされていたため、プロジェクトディレクトリ内にインストールできなかったため、この質問に行き着きました。 )。
次の回避策を見つけました。
package.json
ファイルを別のファイルシステムの一時フォルダーにコピーしますnpm install
そこに走るnode_modules
に使用cp -r --dereference
して、結果のディレクトリをプロジェクトディレクトリにコピーして戻します。これがnode_modules
、別のファイルシステムに移動する方法を探しているときにこの質問にたどり着く他の誰かに役立つことを願っています。
そこ別の回避策、である私は@Charminbearがにリンクされていることをgithubの問題で見つかったが、これは動作しませんgrunt
、それはサポートされていないため、NODE_PATH
あたりとしてhttps://github.com/browserify/resolve/issues/136を:
持っていて
/media/sf_shared
、そこにシンボリックリンクをインストールできないとしましょう。つまり/media/sf_shared/myproject
、一部のモジュールはシンボリックリンクを使用しているため、実際にはnpmインストールからインストールできません 。
$ mkdir /home/dan/myproject && cd /home/dan/myproject
$ ln -s /media/sf_shared/myproject/package.json
(この方向にシンボリックリンクすることはできますが、/ media / sf_shared内にシンボリックリンクを作成することはできません)$ npm install
$ cd /media/sf_shared/myproject
$ NODE_PATH=/home/dan/myproject/node_modules node index.js