回答:
システム全体のnpmパッケージが主な問題である場合は、npmで非常に優れた「バンドル」コマンドを使用することを検討してください。これは、rvmではなく、gemのフリーズまたはレールでのbundlerの使用に近いものです。
とても簡単です。package.jsonファイルを作成するだけです。
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
次に実行します:
npm bundle vendor
または、npmバージョンが1.0以上の場合は、次を実行します。
npm install
ベンダーディレクトリにフリーズします。次に使用します:
require.paths.unshift('./vendor');
npm install
置き換えられたnpm bundle
と思います。
nodeenv -node.jsの仮想環境(アナログvirtualenv)
node.js
環境がPython環境と共にアクティブ化されるようにするために使用できます。を参照してくださいnodeenv -p
。
役立ついくつかのノードバージョン管理システムもあります。
Naveをチェックしてくださいhttps://github.com/isaacs/nave
NVMはhttps://github.com/creationix/nvmでも使用できます
n https://github.com/visionmedia/nと呼ばれるものもあります
bxjxの答えは概念的に正確です。ただし、bundleコマンドはディレクトリを取得しないことに注意してください。それは常にパッケージをnode_modules
フォルダーにドロップするので、npmは後でパッケージを見つける場所を認識します(依存関係の二重インストールを回避できます)。
ソリューションには、おそらくnpmとnaveを「システム全体」(つまりPATH
、~
どこかにある)にインストールする必要がありますが、その後、仮想環境に特定の依存関係のみをインストールします。
私はgithubの問題についてより徹底的に応答しました。
tl; dr:ユースケースは有効であり、大部分はそこにありますが、提供できるほど十分には機能していません。私たちはそれをじっくり考えて正しく行う必要があります。
常に依存関係をグローバルにインストールする必要はありません。その後、あなたはNPMパッケージが提供するコマンドを使用することができますので、通常それはお勧めしますが、あなたは(でローカルにインストールする場合node_modules
、ディレクトリ)、あなたはまた、これらのコマンドを使用することができ、彼らだけで巻き上げるnode_modules/.bin/
あなたが入力する必要がありますので、ディレクトリnode_modules/.bin/<command>
、これは面倒ですが、もちろんこのパスをPATH
環境変数に追加できます。
export PATH=node_modules/.bin:$PATH
その後、入力するだけ<command>
で機能します!
実際には、.bin
ディレクトリへの絶対パスを返すnpmコマンドがあります。
$ npm bin
/path/to/node_modules/.bin
このコマンドは、プロジェクトのサブディレクトリにいる場合にも機能します。このコマンドは、node_modules/.bin
親ディレクトリで最初に見つかったディレクトリを返します。
このエイリアス.bashrc
をに追加して、.bin/
ディレクトリを自動的に追加することができますPATH
。
alias nodebin='export PATH=$(npm bin):$PATH'
したがってnode_modules/
、ルートにディレクトリがあるプロジェクトのディレクトリにいるnodebin
場合は、入力してから、.bin/
ディレクトリにあるすべてのコマンドを使用できます。
あなたがそれが単純なのが好きなら、私は本当にビジョンメディアのnをお勧めします、これは簡単ではありません!
npm install
これを使用するだけであることを理解しています。