コンパイラかく語りき

import { Fun } from 'programming'

npmインストールしたパッケージコマンドの格納先

超小ネタ。

npmでインストールパッケージについて、絶対パスで呼ばなくてはいけない局面があると思う。

webpack                   // webpack: command not found
node_modules/.bin/webpack // OK

結論から言うと、↑のとおり、node_modules/.bin/にある。

以下、おまけ。

コマンドを直呼びできる例

  • package.json内。
  • webpackのようなバンドラ。

↑node_modules以下を見に行くように設定されているっぽい。ありがたい。

コマンドを直呼びできない例

foremanというものをつかって、railsサーバの立ち上げとwebpackの起動を同時に行うことにした。

foreman で アプリケーションを動かす。

しかし、foremanで利用するProcfileは、node_modules/を見に行ってくれない。なので、webpackコマンドの在り処を指定してやる必要があった。

// webpack: command not foundとなるProcfile
rails: bundle exec rails server
webpack: webpack -w
// OKなProcfile
rails: bundle exec rails server
webpack: NODE_ENV=development node_modules/.bin/webpack -w

追記

node_modules/.bin$(npm bin)でも代替可能のようです。