😱
use lefthook in flutter
👤対象者
- Gitのコミット時に静的解析をしたい人
- lintのチェックをしてもらうだけですね
lefthookを使ってみる
Flutterのプロジェクトを作るか、すでに作ってるプロジェクトに導入してみてください。homebrew
を使って導入します。
install lefthook:
brew install lefthook
適当に、Gitを導入して、コミットしておいてください。lefthook
は、Gitないとプロジェクトにインストールできません。
git init & commit
git init
git add .
git commmit -m "wip"
Flutterプロジェクト内で、 lefthookをinstall:
lefthook install
こんなファイルが作成される。
analysis_options.yaml
のリントの設定をする。リントの設定してくれないとチェックしてくれないのでやりましょう。
- print文禁止
- camelCaseで長い変数は書く
-
'
(シングルクォーとを使う)
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# print禁止
avoid_print: true
# single quotesを使う
prefer_single_quotes: true
# camelCaseを使う
prefer_typing_uninitialized_variables: true
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
print文があったり、キャメルケースで、長い名前の変数書いていたり、'
(シングルクォート)じゃなかったら、エラー出ます。
git pushするとエラーが出る😱
成功ですね。
今回は、簡易的な設定なので、これに書き換えないとpushできない。
# EXAMPLE USAGE:
#
# Refer for explanation to following link:
# https://github.com/evilmartians/lefthook/blob/master/docs/configuration.md
pre-commit:
commands:
1_analyzer:
run: flutter analyze
2_linter:
run: dart fix --apply
pre-push:
commands: {}
感想
フィットネスアプリの開発に携わった時に、使った経験があったので、気になってまた使ってみました。でも私は、Macだけど、Windowsのメンバーもいるので、もしlefthook
導入したら、homebrewないからどうなるんだろうか....
npm, Gemで使えるようだが。
Github
Discussion