使用ESLint、 prettier 、commitlint 、husky搭建规范React TypeScript项目基础框架

一、用 Create React App 初始化项目

1、首先确保本机安装了Node.js
2、在终端窗口输入如下命令: 因为项目用到了typescript,所以后面加上这个参数,否则创建的项目是javascript版本的。

npx create-react-app jira --template typescript

二、配置 ESLint、 prettier 、commitlint 、husky规范工程

Prettier。官网地址。这个工具能够使输出代码保持风格一致。

安装配置 Prettier

第一步、 安装Prettier package

打开终端,在项目根目录执行如下安装命令:

#yarn命令
yarn add -dev --exact prettier 

#npm命令
npm install --save-dev --save-exact prettier

第二步、配置.prettierrc.json

## 终端输入以下命令
echo {}> .prettierrc.json
## 或者手动在项目根目录下新建.prettierrc.json

在.prettierrc.json文件添加以下内容。

{
    "trailingComma": "es5",
    "tabWidth": 4,
    "semi": false,
    "singleQuote": true
}

第三步、配置prettierignore

在项目根目录新建.prettierignore文件,内容如下:

node_modules
# Ignore artifacts:
build
coverage

第四步,执行Prettier命令,

注意该命令是手动执行代码整理格式指令。第五步是设置自动格式化命令。此步操作可以不做。

# yarn 命令
yarn prettier --write .

# npx  命令
npx prettier --write .

接着,在package.json文件中的scripts节点中增加:

"format": "prettier --write \"**/*.{ts,tsx,js,json,css,scss}\""

这样,就可以执行如下命令,对整个项目进行代码格式化

# yarn 命令
yarn format

# npx  命令
npm run format

第五步,设置自动化格式化命令,安装husky。

该工具是管理git-hook的工具,在commit之前会调用lint-staged方法自动触发。

npx mrm@2 lint-staged

安装后package.json文件末尾会增加以下内容.

## 注意:此项目为TypeJavaScript项目,需要在后缀列表中添加ts和tsx文件。 
"devDependencies": {
    "husky": "^7.0.4",
    "lint-staged": "^12.3.8",
    "prettier": "2.6.2"
  },
  "lint-staged": {
    "*.{js,css,md,ts,tsx}": "prettier --write"
  }

第六步 配置兼容Eslint

项目中使用了Eslint,如果您使用 ESLint,请安装eslint-config- prettier 以使 ESLint 和 Prettier 相互配合。它会关闭所有不必要或可能与 Prettier 冲突的 ESLint 规则。

yarn add eslint-config-prettier -D 

同时在package.json文件中eslintConfig增加"prettier"

  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest",
      "prettier"
    ]
  },

安装配置commitlint、husky

CommilLint。官网地址 。commitlint + husky 用来规范 git commit -m "" 中的描述信息。

第一步、安装commitlint

## 在终端,项目根目录下运行:
yarn add @commitlint/{config-conventional,cli} -D

npm install --save-dev @commitlint/{config-conventional,cli}

## windows
npm install --save-dev @commitlint/config-conventional @commitlint/cli

第二步、配置commitlint

运行命令,这里会在项目根目录下生成commitlint.config.js文件。

echo module.exports = {extends: ['@commitlint/config-conventional']} > commitlint.config.js

第三步、安装和配置husky

# 安装 Husky v6
npm install husky --save-dev
yarn add husky --dev

# 激活 hooks
npx husky install
yarn husky install

# 添加 hook
npx husky add .husky/commit-msg "npx --no-install commitlint --edit "$1""

常用的提交规范:

# 主要type

feat:     增加新功能
fix:      修复bug

# 特殊type

docs:     只改动了文档相关的内容
style:    不影响代码含义的改动,例如去掉空格、改变缩进、增删分号
build:    构造工具的或者外部依赖的改动,例如webpack,npm
refactor: 代码重构时使用
revert:   执行git revert打印的message

# 暂不使用type

test:     添加测试或者修改现有测试
perf:     提高性能的改动
ci:       与CI(持续集成服务)有关的改动
chore:    不修改src或者test的其余修改,例如构建过程或辅助工具的变动

posted @ 2022-04-17 18:31  Scok  阅读(501)  评论(0编辑  收藏  举报