npm install husky --save-dev
npx husky install
npm install
하면 자동으로 npx husky install
이 실행되게 스크립트 설정prepare
스크립트는 패키지가 패킹 되기 전에 실행되는 스크립트로 npm publish
, npm pack
의 스크립트가 실행될 때, 로컬에서 파라이터 없이 npm install
스크립트가 실행될 때 호출//package.json
"scripts": {
...
"prepare": "husky install",
..
}
npm install lint-staged --save-dev
//package.json
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx}": [
"eslint --cache --fix",
"prettier --cache --write"
]
}
// --fix : ESLint가 자동으로 고쳐준다
// --cache : 이 전에 검사했던 파일이나 항목을 cache에 저장하여 변경사항이 없다면
// 그 파일은 검사하지 않는 기능 (.eslintcache : .gitignore에 기재)
npx husky add .husky/pre-commit 'npx lint-staged'
명령어 실행 후 .husky/pre-commit 확인
npm install @commitlint/config-conventional @commitlint/cli
//commitlint.config.js
module.exports = { extends: ['@commitlint/config-conventional'] };
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
명령어 실행 후 .husky/commit-msg 확인
.lintstagedrc.js
const path = require('path');
const buildEslintCommand = (filenames) =>
`next lint --fix --file ${filenames
.map((f) => path.relative(process.cwd(), f))
.join(' --file ')}`;
module.exports = {
'*.{js,jsx,ts,tsx}': [buildEslintCommand],
};
https://nextjs.org/docs/pages/building-your-application/configuring/eslint#lint-staged