LoginSignup
3
3

More than 5 years have passed since last update.

JSCSに振り回された話

Posted at

あらまし

12月から、JSのコーディング規約を整えようとして、Jenkins上とGitのコミットフックでJSCSを叩くようにしたんですよ。
gulp-jscs + gulp-jscs-stylish つかって、Gulpコマンドとして用意しました。

preset は airbnb にしました。深い理由は無いんですが、自分の普段の書き方にわりと近かったので。
ちょっと冗長すぎるところはあるかなと思いますが・・・オブジェクト宣言時のカンマとか。

var obj = {
  hoge: 'hoge',
  fuga: 'fuga',  // <- これね!
};  // <- あとこれとかね!

お堅い感じ。

振り回された><

ある日突然、ローカルではJSCS通るのにJenkinsで通らない事象が起きました。
node_modulesディレクトリを綺麗さっぱり消し去ってからnpm installしただけではあるんですが、つまるところJSCSがアップデートされて、チェックするルールが変わったのですね。

https://github.com/jscs-dev/node-jscs/releases/tag/v2.9.0 (こいつだ・・・ッ!!)

ところで、gulp-jscsのバージョンは上がっていません。
アプリケーションのpackage.jsonにはgulp-jscsのみdependencyを指定していて、jscsはしてませんでした。

gulp-jscsのpackage.jsonを見ると、jscsのdependency指定は以下のようになってました。

{
  "gulp-util": "^3.0.4",
  "jscs": "^2.1.1",
  "through2": "^2.0.0",
  "tildify": "^1.0.0"
}

あーね。こりゃある日突然チェックルール変わっちゃうわ。

解決編

アプリケーションのpackage.jsonのdependency指定にjscs突っ込むだけ。

{
  "gulp-jscs": "~3.0.2",
  "gulp-jscs-stylish": "~1.3.0", 
  "jscs": "~2.8.0"
}

まとめ

ある程度以上の規模プロジェクトでコーディング規約が勝手に変わられちゃうと「全ソース修正したコミット、しかもスペース調整だけ」みたいな頭の痛くなるコミットができちゃうので、固定しときましょうという話でした。
もちろん、任意のタイミングで規約を改めるのはいいと思います。開発メンバーの意図しないところで規約が変わってしまうというのが迷惑なだけで。

3
3
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
3
3