Slide 1

Slide 1 text

コミット前に Lintチェックしませんか? #1 クーコム Tech Meetup 代官山でLT会 2019/07/31(水) 矢崎 祐樹 / ざき / @zucky_zakizaki

Slide 2

Slide 2 text

ざき (やざき ゆうき) @zucky_zakizaki ● 株式会社ランチェスター ● Ruby / Vue.js ● TypeScriptに興味がある ● ブログ好き - はてなブログ - note

Slide 3

Slide 3 text

みなさん Lintチェックしてますか?

Slide 4

Slide 4 text

Rubocop (rubocop -a) ESLint / JSLint

Slide 5

Slide 5 text

コミット前に Lint走らせるの 忘れちゃう

Slide 6

Slide 6 text

仕組みで解決 しちゃいましょう!

Slide 7

Slide 7 text

1. husky - git commit時に発生する
 Gitフック「pre-commit」をhuskyでハンドリング 2. lint-staged - Gitのステージに上がっているファイルを対象に
 eslint等のコマンドを実行できる npmモジュールの紹介

Slide 8

Slide 8 text

package.jsonの設定(eslintの場合)

Slide 9

Slide 9 text

package.jsonの設定(eslintの場合) huskyでpre-commit検知、 lint-stagedへハンドリング jsファイルに対して、 eslint&自動修正実行 自動修正されたjsファイルを git add で再度ステージへ 対象外のファイルを指定

Slide 10

Slide 10 text

実行例(eslintの場合)

Slide 11

Slide 11 text

huskyでpre-commit検知 package.jsonに記載した コマンド実行 実行例(eslintの場合)

Slide 12

Slide 12 text

1. CI環境がない場合 - 各開発者の環境下にて、
 Lintやテストし忘れた状態でコミット&Pushする
 という事故を防げる - 「個人開発、CIメンテ時の代替」として使える 2. コミット数を減らしたい場合 - 「CIにてLintNG→コミット→Push」
 というサイクルによる無駄なコミットを防げる メリット・使える場面

Slide 13

Slide 13 text

細かい手順はこちら 参考記事 - コミット前に Lint を強制するなら lint-staged が便利 - husky + lint-stagedでgitのprecommit時にimageminを行い、 minifyした画像のみコミットされるようにする - 【JavaScript】コミットする前にlint-stagedでeslintのチェックを する - 【Ruby】コミットする前に husky+lint-staged で、Rubocopの自 動整形&チェックを行う

Slide 14

Slide 14 text

coocom