1. ホーム
  2. node.js

[解決済み] ローカルにインストールしたパッケージの実行ファイルを node_modules で使用するには?

2022-03-15 22:15:19

質問

でローカルバージョンのモジュールを使用するにはどうすればよいですか? node.js . 例えば、私のアプリでは、coffee-scriptをインストールしました。

npm install coffee-script

これでインストールされるのは ./node_modules で、coffeeコマンドは ./node_modules/.bin/coffee . プロジェクトのメインフォルダにいるときに、このコマンドを実行する方法はないでしょうか?私は、次のようなものを探しているのだと思います。 bundle exec をバンドルしています。基本的には、プロジェクトに関わる全員が使うべきcoffee-scriptのバージョンを指定したいのです。

を追加できることは知っています。 -g フラグを使用してグローバルにインストールすることで、coffeeはどこでも問題なく動作します。しかし、プロジェクトごとに異なるバージョンのcoffeeを使用したい場合はどうすればよいでしょうか?

解決方法は?

アップデイト : Seyeong Jeong が下記の回答で指摘しているように、npm 5.2.0 以降は npx [command] の方が便利です。

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