SublimeLinter、SublimeLinter-jshintをインストールしたが、インストール直後は動かなかったので
設定メモです。
- Ubuntu 64bit 14.04
- nodebrewでインストールしたnode、npm
- Sublime Text 3
- jshintはnpmでグローバル環境(/home/foo/.nodebrew/current/bin)にインストール済み
Preferences → Package Settings → SublimeLinter → Settings – User
で、設定ファイル表示します。
ファイルを表示した直後は、ほぼ何も記述されていないので、Defaultからコピーして持ってくる。
paths-linuxにjshintまでのパスを追記しましたが、動きませんでした。
{
"user": {
"debug": false,
"delay": 0.25,
"error_color": "D02000",
"gutter_theme": "Packages/SublimeLinter/gutter-themes/Knob/simple/Knob - simple.gutter-theme",
"gutter_theme_excludes": ,
"lint_mode": "background",
"linters": {
"jshint": {
"@disable": false,
"args": ,
"excludes": ,
"node": true
}
},
"mark_style": "outline",
"no_column_highlights_line": false,
"paths": {
"*": ,
"linux": [
"~/.nodebrew/current/bin"
],
"osx": ,
"windows":
},
"python_paths": {
"linux": [
"/usr/bin"
],
"osx": ,
"windows":
},
"rc_search_limit": 3,
"shell_timeout": 10,
"show_errors_on_save": false,
"show_marks_in_minimap": true,
"syntax_map": {
"html (django)": "html",
"html (rails)": "html",
"html 5": "html",
"php": "html",
"python django": "python"
},
"warning_color": "DDB700",
"wrap_find": true
}
}
この時点では、何が動かないか分からなかったので、デバッグモードで原因を確認します。
設定ファイルで下記を変更
"debug": true,
変更あと、Sublime Textを再起動後、コンソールを表示します。
Show → Console
以下のメッセージが表示されました。
SublimeLinter: computed PATH using /bin/bash: ~/.nodebrew/current/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games SublimeLinter: jshint version query: /home/foo/.nodebrew/current/bin/jshint --version SublimeLinter: WARNING: no jshint version could be extracted from: /usr/bin/env: node: そのようなファイルやディレクトリはありません
WARNINGメッセージをGoogle先生で調べても、Windowsの話しか出てこなかったので、
ハマりましたが、どうやら、path-linuxは、絶対パスを記述する必要があるようでした。
設定値を
~/.nodebrew/current/bin
から
/home/foo/.nodebrew/current/bin
に変更したら、動くようになりました。
変更後のデバッグメッセージ
SublimeLinter: user shell: /bin/bash SublimeLinter: computed PATH using /bin/bash: ~/.nodebrew/current/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games SublimeLinter: jshint version query: ~/.nodebrew/current/bin/jshint --version SublimeLinter: jshint version: 2.5.5 SublimeLinter: jshint: (>= 2.5.0) satisfied by 2.5.5 SublimeLinter: jshint activated: ~/.nodebrew/current/bin/jshint