React管理平台项目配置

128 阅读1分钟

1. 新建项目

npx create-react-app react-test --template typescript

2. 配置eslint、prettier、eslint-plugin-simple-import-sort

npm install -D eslint eslint-config-prettier eslint-plugin-prettier prettier eslint-plugin-simple-import-sort -D

2.1 项目根目录新建 .eslintrc.cjs文件

module.exports = {
    root: true,
    env: {
        es6: true,
        node: true,
        browser: true
    },
    parserOptions: {
        sourceType: "module",
        ecmaFeatures: {
            jsx: true,
        },
    },
    extends: [
        "react-app",
        "react-app/jest",
        "eslint:recommended",
        "plugin:prettier/recommended"
    ],
    plugins: [
        "prettier",
        "simple-import-sort"
    ],
    rules: {
        "simple-import-sort/imports": "error",
        "simple-import-sort/exports": "error"
    }
}

2.2 VsCode安装Prettier - Code formatter插件

image.png

2.3 VsCode配置保存格式化文件

image.png

3. 配置git hooks

npm i -D husky lint-staged @commitlint/config-conventional @commitlint/cli

3.1 安装husky

npx husky install

3.2 配置 pre-commit hooks检查缓存区内的文件

修改package.json

{
    "lint-staged": {
        "src/**/*.{tsx,ts,jsx,js}": [
            "eslint . --ext .tsx,.ts,.jsx,.js --fix"
        ]
    }
}

npx husky add .husky/pre-commit 'npx lint-staged'

3.3 配置 commit-msg hooks检查提交信息

项目根目录新建 commitlint.config.js文件

module.exports = {
    extends: ["@commitlint/config-conventional"]
}

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

4. 配置craco

npm i -D @craco/craco @craco/craco

4.1 项目根目录新建 craco.config.ts 文件

import type { CracoConfig } from "@craco/types";

const cracoConfig: CracoConfig = {
    devServer: {
        open: false
    }
}

export default cracoConfig;

4.2 修改 package.json

{
    "scripts": {
        "start": "craco start",
        "build": "craco build",
        "test": "craco test"
    }
}

参考文档

  1. Craco文档
  2. Webpack文档
  3. Prettier中文网
  4. Eslint文档
  5. @typescript-eslint
  6. Stylelint
  7. commitlint
  8. husky
  9. lint-staged