創建react項目並集成eslint/prettier/commit-lint

創建 react 項目

npx create-react-app jira-new --template typescript

如果不想使用 TS,而要用 JS 的話,則刪除 —template typescript 後綴

添加 prettier

npm install --save-dev --save-exact prettier 
echo {}> .prettierrc.json 

兼容 eslint 規則

npm install --save-dev eslint-config-prettier 

在 package.json 中添加如下語句:

{ 
	"extends": [ 
		"some-other-config-you-use", 
		"prettier" 
	]
} 

添加 Git hooks

npx mrm lint-staged

如果運行失敗,則運行下面語句,其實上面那句命令等價於下面四條命令

npm install --save-dev husky lint-staged 
npx husky install 
npm set-script prepare "husky install" 
npx husky add .husky/pre-commit "npx lint-staged" 

注意,windows 不能直接添加 pre-commit,需要分步執行

npx husky add .husky/pre-commit 

然後在 .husky/pre-commit 文件中添加 npx lint-staged 命令

在 package.json 中添加 lint-staged 命令

"lint-staged": {
  "**/*": "prettier --write --ignore-unknown"
}

添加 commit-lint

commit-lint 的作用是規範化 git 提交,約束 git 提交時的語句

# Install commitlint cli and conventional config 
npm install --save-dev @commitlint/{config-conventional,cli} 
# For Windows: 
npm install --save-dev @commitlint/config-conventional @commitlint/cli 
# Configure commitlint to use conventional config 
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js 

還是注意,在windows下面,最後一句輸出的語句會被雙引號包裹,需要手動從 commitlint.config.js 文件內容中刪除

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"' 

windows分步執行,mac無此問題