ローカルにインストールしたNodeモジュールのコマンドにPATHを通す
ロ〜ング休暇のため、更新滞ってましたが、本日から再開します。
グローバルやめたい
お休み中にESLint v2.0.0がリリースされたので、プロジェクトのESLintの設定を修正していたときのこと。
自分はVimをエディタとして使っているので、定番のsyntasticでシンタックスチェックをしながらコーディングしています。
このプラグインがグローバルにインストールしたESLintにしか対応していないため、ローカルとグローバル両方にESLint&共有設定&プラグインをインストールするという力技で頑張ってきました。
が、そろそろ、このやり方はやめたいと。
何かないか?
そこで、ESLintコミッターの方が作っているeslint-cli
というツールを使おうと思いました。
これは、グローバルにインストールすることで、いい感じにパスを解決して、ローカルのeslintを使ってくれるツールだそう。
これでいける!と思いました。が・・・
よく考えると・・・
mocha
とか他のツールでも同様の問題が。
vimから呼ぶツール系を全部グローバルインストールしてお茶を濁してきたので、ESLint以外も対応したい。。。
そこで
昔見たコチラの記事を参考に、
./node_modules/.bin
にパスを通すという技で解決することに。
カレントディレクトリがプロジェクトルートでないとダメですが、自分の場合はこれで問題なさそうです。
注意点
セキュリティ的にリスクがあるので、パスの優先順位は最下位にしておいた方がいいようです。
例えば、ls
みたいな定番コマンドと同名のファイルを./node_modules/.bin
にインストールする輩のせいであぼーんみたいなことがないとは言えないので。
自分の場合、zshを使っているので、
path+=(./node_modules/.bin)
を.zshenvの最後に足しました。