5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GVimでJavaScriptのシンタックスチェックしようとしたら、abnormal statusとか言われて困った話

Last updated at Posted at 2014-08-01

VimでJavaScriptのシンタックスチェックをしたい

プラグイン導入

_vimrcを修正

NeoBundle 'scrooloose/syntastic'

Syntasticの設定

_vimrcを修正

let g:syntastic_check_on_open = 0 "ファイルオープン時にはチェックをしない
let g:syntastic_check_on_save = 1 "ファイル保存時にはチェックを実施
" jshint 設定ファイルの場所を指定
let g:syntastic_javascript_jshint_args = '--config "' . $HOME . '/.jshintrc"'

4行目のjshint設定ファイルの場所を指定しなかったがために、エラーにあって困った。。

ここでちゃんと指定してれば、以下は起きないハズなので読まなくてOKです。。


発生したこと

適当に書いたJavaScriptファイルで動作確認しようとしたら、こんなエラー

Checker javascript/jshint returned abnormal status

なんか動いてないっぽい。。

jshintのインストール確認

npm install jshint --global

jshint 設定ファイル

ホームディレクトリ以下に、.jshintrcを作る。

{
  "indent" : 2,      // インデント
  "camelcase":true,  // キャメルケース
  "maxlen" : 80,     // 一行の最大文字数
  "unused" : true,   // 宣言のみで使用していない変数を検出
  "eqeqeq":true,     // ==、!=の使用禁止
  "undef" : true,    // グローバル変数へのアクセスを禁止
  "devel" : true,     // console、alertを許可
  "globals": {
    "$": false,
    "jQuery": false
  }
}

以前作っていたファイルが、地味にJSONの文法エラーで更にハマる。。

.jshintrcの文法確認

コンソールからちゃんと動くかやってみる。

jshint --config %HOME%\.jshintrc test.js

↓こんなんでで来る場合は、JSON文法エラー

ERROR: Can't parse config your_config_file_path_here

↓ちゃんとチェックしてくれたらOK

test.js: line 3, col 8, Creating global 'for' variable. Should be 'for (var key ...'.
test.js: line 3, col 15, 'options' is not defined.
test.js: line 4, col 17, 'options' is not defined.
test.js: line 4, col 25, 'key' is not defined.

4 errors

errorsって言われてもなんか嬉しいww

Syntasticをデバッグモードにしてもっと情報をもらう

再びvimにて。。
ノーマルモードから、syntasticの設定をセット。
テストしたいJSファイルを保存するとチェックが走る。

<ESC>
let g:syntastic_debug=3
:w

ここで設定ファイルが読み込めてない的なエラーを発見。


参考URL:Checker javascript/jshint returned abnormal status · Issue #1029 · scrooloose/syntastic

唯一これしかヒットしなくて、英語だし、長いし・・ひぇ~と思ってたんだけど、
下の方でキレ気味に

「いいから
let g:syntastic_javascript_jshint_conf = $HOME . '/.jshintrc'
やれよ。」

って記述がビンゴでした。
ありがとう。

5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?