LoginSignup
18
18

More than 5 years have passed since last update.

SublimeText+jshint+nodebrewで動かなかった話

Last updated at Posted at 2014-07-28

現象

Sublime Text 3のパッケージ、SublimeLinter-jshintを使っていて、急に動かなくなった(原因はあった)ので、その解消方法を共有。

環境

  • Mac
  • Sublime Text 3
    • SublimeLinter
    • SublimeLinter-jshint
  • Homebrew
  • zsh by homebrew
  • oh-my-zsh
  • nodebrew by homebrew
  • node by nodebrew
  • jshint by nodebrew

動かなくなるまで

gulpなどいじっていて、npm周りを触っていたところ、急にSublime Text 3のjshintが動かなくなった。
これがないとJavaScript初心者には辛い。。。

Sublime Text 3のパッケージ全部消しても、環境にあげたもの全て再インストールしても直らない。
最後にはOS再インストールしたのに直らない。。。

試しに入れたSublimeLinter-html-tidyは動いたので、(tidyは入れてた)nodeかnpm周りのエラーと断定。
ちなhtml-tidyは厳しすぎて消しました。

原因究明まで

同じころに、nodeのバージョン管理マネージャーのnodebrewを入れたので、たぶんそれが原因かな。。。と薄々思いながら、Google dig。

ここに、困ったらSublimeTextのコンソール開けと言ってたので、開いてみると
SublimeLinter: WARNING: jshint deactivated, cannot locate 'jshint'
jshintねぇよとおっしゃっておる。

確かにnpm install -g jshintでグローバルに入れてるのに。。。

ターミナルからもjshintコマンドは使える。何故。

原因

nodebrewでnodeのバージョン管理と、npmのパッケージを管理していたためでした。

nodebrewは、npmグローバルインストールしても自動で~/.nodebrewに振ってくれるありがたいものです。
nvmなどと同じようなものですが、nvmbash最適化されているので、zsh使いはnodebrewがベターな模様。

nodebrewはインストール時に、.zshrc.bashrcにパスを通せと言われるので、
export PATH=$HOME/.nodebrew/current/bin:$PATH
.zshrcに追記します。
つまり、/usr/以下にnodenpmを入れるのではなく、~/.nodebrew/current/bin/で一元管理されてるということ。

これでターミナルからはパスが通るのですが、SublimeLinterには通らない模様。

If you are using nvm and zsh, ensure that the line to load nvm is in .zshenv and not .zshrc.

nvmzshを使っている場合、nvm.zshenvは読むけど.zshrcは読まないとという意味っぽい。

.zshenv
export PATH=$HOME/.nodebrew/current/bin:$PATH
を追記。

動いた!

結果

パッケージ管理系は大変使いやすく、有り難いものですが、パスの通し方には気をつけましょうというお話でした。
解明に1日かかった。。。
他のnode.jsを使っているSublimeTextのパッケージでも、デフォルトでは大体/usr/local/binあたりを探すので、注意が必要です。

ちな

jslint

If you are using zsh and oh-my-zsh, do not load the nvm plugin for oh-my-zsh.

jslintだとさらに注意書きが増え、oh-my-zshnvmプラグインは読まないらしい。
jshintにも影響があるかどうかはnvm使ってないので未調査です。

HTML-CSS-Prettify

こちらもnode.jsを使っているので、パス指定をしなければいけません。
Preferences > Package Settings > HTML/CSS/JS Prettify > set node path
の8行目を、
"osx": "$HOME/.nodebrew/current/bin/node"
に変更。

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18