でモジュールのローカル バージョンを使用するにはどうすればよいですかnode.js
。たとえば、私のアプリでは、coffee-script をインストールしました。
npm install coffee-script
これは にインストールされ./node_modules
、 coffee コマンドは にあります./node_modules/.bin/coffee
。プロジェクトのメイン フォルダーにいるときにこのコマンドを実行する方法はありますか? おそらく、bundle exec
bundler で に似たものを探しているのでしょう。基本的には、プロジェクトに関係する全員が使用する必要がある coffee-script のバージョンを指定したいと思います。
フラグを追加してグローバルにインストールすれば、どこでもコーヒーが問題なく動作することはわかっています-g
が、プロジェクトごとに異なるバージョンのコーヒーを用意したい場合はどうすればよいでしょうか。
ベストアンサー1
npm ⩾5.2.0 (アップデート)
Seyeong Jeong が以下の回答で指摘しているように、npm 5.2.0 以降では を使用できnpx
、こちらの方が便利です。
npx [command]
古いバージョンの場合 npm <5.2.0 (古い回答)
パッティングの問題
./node_modules/.bin
PATHに以下を追加すると、現在の作業ディレクトリがプロジェクトディレクトリ構造のルート(つまり、の場所node_modules
)である場合にのみ機能します。
作業ディレクトリに関係なく、ローカルにインストールされたバイナリのパスを取得するには、
npm bin
coffee
プロジェクトディレクトリ階層のどこにいるかに関係なく、ローカルにインストールされたバイナリを実行するには、このbash構文を使用できます。
PATH=$(npm bin):$PATH coffee
これをnpm-execにエイリアスしました
alias npm-exec='PATH=$(npm bin):$PATH'
だから今私は
npm-exec coffee
どこにいても正しいコーヒーを淹れる
$ pwd
/Users/regular/project1
$ npm-exec which coffee
/Users/regular/project1/node_modules/.bin/coffee
$ cd lib/
$ npm-exec which coffee
/Users/regular/project1/node_modules/.bin/coffee
$ cd ~/project2
$ npm-exec which coffee
/Users/regular/project2/node_modules/.bin/coffee