🎃
最近の lint-staged 状況
2021/05/03 追記
npx mrm lint-staged
すると husky が使われるようになっていた。。
- feat(lint-staged): Use husky 6 (#152) · sapegin/mrm@133fe08
- History for packages/mrm-task-lint-staged/index.js - sapegin/mrm
diff --git a/package.json b/package.json
index e51f73f..b453335 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,18 @@
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "prepare": "husky install"
},
"license": "MIT",
"devDependencies": {
"eslint": "^7.25.0",
+ "husky": "^6.0.0",
+ "lint-staged": "^10.5.4",
"prettier": "2.2.1"
+ },
+ "lint-staged": {
+ "*.js": "eslint --cache --fix",
+ "*.{js,css,md}": "prettier --write"
}
}
環境
% sw_vers
ProductName: macOS
ProductVersion: 11.3
BuildVersion: 20E232
% node -v
v16.0.0
% npm -v
7.10.0
以下は、2021/03/28 ころの状況です。
はじめに
最近の lint-staged は simple-git-hooks が使われていて、少しハマったので覚書。
何にハマったかというと、コミットしても何も起きなかった><
作業用ディレクトリ作成
$ mkdir try-lint-staged && cd $_
$ git init
$ gibo dump macos linux windows node > .gitignore
$ git add .
$ git commit -m 'initial commit'
Prettier, ESLint のインストール
$ npm init -y
$ npm install --save-dev --save-exact prettier
$ npm i -D eslint
lint-staged のインストール
$ npx mrm lint-staged
package.json の差分はこんな感じ。
diff --git a/package.json b/package.json
index 1843f0a..f461660 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,15 @@
"license": "ISC",
"devDependencies": {
"eslint": "^7.23.0",
- "prettier": "2.2.1"
+ "lint-staged": "^10.5.4",
+ "prettier": "2.2.1",
+ "simple-git-hooks": "^2.2.0"
+ },
+ "simple-git-hooks": {
+ "pre-commit": "npx lint-staged"
+ },
+ "lint-staged": {
+ "*.js": "eslint --cache --fix",
+ "*.{js,css,md}": "prettier --write"
}
}
解決
このままでは、コミットしても何も起きないので、以下のコマンドを実行する。
$ npx simple-git-hooks
simple-git-hooks のフックを増やす度に、上記のコマンドの実行が必要。
Discussion