なっく日報

技術やら生活やらのメモ

ローカルにインストールしたNodeモジュールのコマンドにPATHを通す

ロ〜ング休暇のため、更新滞ってましたが、本日から再開します。

グローバルやめたい

eslint.org

お休み中にESLint v2.0.0がリリースされたので、プロジェクトのESLintの設定を修正していたときのこと。

自分はVimをエディタとして使っているので、定番のsyntasticシンタックスチェックをしながらコーディングしています。

このプラグインがグローバルにインストールしたESLintにしか対応していないため、ローカルとグローバル両方にESLint&共有設定&プラグインをインストールするという力技で頑張ってきました。

が、そろそろ、このやり方はやめたいと。

何かないか?

そこで、ESLintコミッターの方が作っているeslint-cliというツールを使おうと思いました。

qiita.com

これは、グローバルにインストールすることで、いい感じにパスを解決して、ローカルのeslintを使ってくれるツールだそう。

これでいける!と思いました。が・・・

よく考えると・・・

mochaとか他のツールでも同様の問題が。

vimから呼ぶツール系を全部グローバルインストールしてお茶を濁してきたので、ESLint以外も対応したい。。。

そこで

昔見たコチラの記事を参考に、

qiita.com

./node_modules/.binにパスを通すという技で解決することに。

カレントディレクトリがプロジェクトルートでないとダメですが、自分の場合はこれで問題なさそうです。

注意点

セキュリティ的にリスクがあるので、パスの優先順位は最下位にしておいた方がいいようです。

例えば、lsみたいな定番コマンドと同名のファイルを./node_modules/.binにインストールする輩のせいであぼーんみたいなことがないとは言えないので。

自分の場合、zshを使っているので、

path+=(./node_modules/.bin)

を.zshenvの最後に足しました。