Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* Husky v5以降(.huskyフォルダ) [#g2645b7d]
** 補足 [#q56205ff]
- Huskyはv4まではpackage.jsonにフックスクリプトを設定して...
- v5以降は.huskyフォルダ内にフックスクリプトを設定して、G...
** インストール [#a388aca7]
npm install --save-dev husky
- あらかじめ'''git init'''しておく
** 設定 [#lf0b8858]
npm set-script prepare "husky install" # (1)
npm run prepare # (2)
npx husky add .husky/pre-commit "npm test" # (3)
git commit # (4)
----------------------------------------
npx husky-init # (注1)
- (1) このコマンドによってpackage.jsonに以下のように"scri...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"prepare": "husky install"
},
- (2) このコマンドによって、.huskyフォルダが作成され、.gi...
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
ignorecase = true
hooksPath = .husky
- (3) このコマンドによって.husky/pre-commitファイルが作成...
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm test
- (4) 上までの一連の設定でgit commit時にコミット前に"npm ...
- (注1) 上の(1)(2)(3)の代わりにこのコマンドを使ってもよい
** pre-commitファイルの管理 [#i7e74bae]
git add .husky/pre-commit
- pre-commitファイルをGit管理する
** lint-stagedと連携 [#p26133d2]
*** インストール [#gd081e03]
npm install --save-dev lint-staged
*** package.json設定 [#i8571e10]
vi package.json
------
"scripts": { ...
"test": "echo \"Error: no test specified\" && exit 1",
"pre-commit": "lint-staged",
"prepare": "husky install"
},
...,
"lint-staged": { ...
"*.{js,ts}": [
"eslint --fix",
"prettier --write"
]
}
------
- (1) NPMスクリプト("scripts")に"prepare"を追加して、"l...
- (2) "lint-staged"にlint-stagedで実行するコマンドなどを...
*** Huskyのpre-commit設定 [#g2dd4ed7]
npx husky add .husky/pre-commit "npm run pre-commit"
- Huskyのpre-commitファイルに上で作ったNPMスクリプトを実...
- 直接.husky/pre-commitファイルを編集してもよい
*** 動作確認 [#b26999b2]
git add foo.js
git commit
- git commit時にHuskyがフックされて起動し、
- .husky/pre-commitに記述された"npm run pre-commit"が実行...
- pre-commitスクリプトの中で指定しているlint-stagedが実行...
- lint-stagedで指定したコマンド(eslintとprettier)が実行...
** 参考 [#r5999ff4]
- https://github.com/typicode/husky
- https://github.com/okonet/lint-staged
終了行:
* Husky v5以降(.huskyフォルダ) [#g2645b7d]
** 補足 [#q56205ff]
- Huskyはv4まではpackage.jsonにフックスクリプトを設定して...
- v5以降は.huskyフォルダ内にフックスクリプトを設定して、G...
** インストール [#a388aca7]
npm install --save-dev husky
- あらかじめ'''git init'''しておく
** 設定 [#lf0b8858]
npm set-script prepare "husky install" # (1)
npm run prepare # (2)
npx husky add .husky/pre-commit "npm test" # (3)
git commit # (4)
----------------------------------------
npx husky-init # (注1)
- (1) このコマンドによってpackage.jsonに以下のように"scri...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"prepare": "husky install"
},
- (2) このコマンドによって、.huskyフォルダが作成され、.gi...
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
ignorecase = true
hooksPath = .husky
- (3) このコマンドによって.husky/pre-commitファイルが作成...
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm test
- (4) 上までの一連の設定でgit commit時にコミット前に"npm ...
- (注1) 上の(1)(2)(3)の代わりにこのコマンドを使ってもよい
** pre-commitファイルの管理 [#i7e74bae]
git add .husky/pre-commit
- pre-commitファイルをGit管理する
** lint-stagedと連携 [#p26133d2]
*** インストール [#gd081e03]
npm install --save-dev lint-staged
*** package.json設定 [#i8571e10]
vi package.json
------
"scripts": { ...
"test": "echo \"Error: no test specified\" && exit 1",
"pre-commit": "lint-staged",
"prepare": "husky install"
},
...,
"lint-staged": { ...
"*.{js,ts}": [
"eslint --fix",
"prettier --write"
]
}
------
- (1) NPMスクリプト("scripts")に"prepare"を追加して、"l...
- (2) "lint-staged"にlint-stagedで実行するコマンドなどを...
*** Huskyのpre-commit設定 [#g2dd4ed7]
npx husky add .husky/pre-commit "npm run pre-commit"
- Huskyのpre-commitファイルに上で作ったNPMスクリプトを実...
- 直接.husky/pre-commitファイルを編集してもよい
*** 動作確認 [#b26999b2]
git add foo.js
git commit
- git commit時にHuskyがフックされて起動し、
- .husky/pre-commitに記述された"npm run pre-commit"が実行...
- pre-commitスクリプトの中で指定しているlint-stagedが実行...
- lint-stagedで指定したコマンド(eslintとprettier)が実行...
** 参考 [#r5999ff4]
- https://github.com/typicode/husky
- https://github.com/okonet/lint-staged
ページ名: