React + Prettier + ESLint + Airbnb

为什么要使用eslint、airbnb配置项? 因为:
ESLint + Airbnb = Standard JS

步骤如下:
1:create-react-app cra-eslint-airbnb-sample --template typescript
2:cd cra-eslint-airbnb-sample
3:npm install eslint —-save-dev
4:npm install eslint-config-airbnb --save-dev (非typescript项目)
npm install eslint-config-airbnb-typescript --save-dev (typescript项目)
5:根目录下新建:.eslintrc
添加代码:

    {
      "extends": "airbnb"
    }

6:src下添加测试代码test.tsx

export default function Test (){
  var a = 1;
  var b = 2;
}

7: package.json -> scripts -> 添加以下:
"lint": "./node_modules/.bin/eslint ./src/test.tsx"
//上述配置,也可以指定文件夹,或文件类型,比如:
"lint": "eslint --fix src/**/*.{js,jsx,ts,tsx}"

8:执行 npm run lint, 结果如下:

上述每次都要npm run lint才能发现问题,怎么做到coding的时候实时发现问题呢? 使用Prettier插件。 实现方式如下:

npm install -g eslint
npm install -g prettier

npm install eslint eslint-config-airbnb-typescript eslint-config-airbnb-typescript-prettier eslint-config-prettier eslint-plugin-prettier prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser --save-dev

再添加如下scripts:
"lint": "eslint --fix src//*.{js,jsx,ts,tsx}",
"format": "prettier --write src/
/*.{js,jsx,ts,tsx}"

添加.prettierrc

{
    "singleQuote": true,
    "trailingComma": "all",
    "endOfLine":"auto"
  }

添加.eslintrc

{
    "extends": "airbnb-typescript-prettier",
    "parserOptions": {
        "project": "./tsconfig.json"
    }
}

最后,VSCode安装插件

此时可以看到在coding时,就可以实时提示静态代码问题

参考:
https://github.com/iamturns/eslint-config-airbnb-typescript

posted @ 2021-01-17 16:29  老胡Andy  阅读(948)  评论(0编辑  收藏  举报