【问题标题】:Proper way of Installing ESlint with Prettier in a React Project在 React 项目中使用 Prettier 安装 ESlint 的正确方法
【发布时间】:2021-07-30 08:08:00
【问题描述】:

我最近开始在我的项目中使用 eslint 和 prettier,但我总是不确定我是否正确安装了它们。我在网上阅读了几篇文章,似乎每篇文章的做法都不一样。我正在尝试使用 Airbnb 配置。我目前在基本的 React 应用程序中没有遇到任何错误,但我只是想确保它是正确的配置。用 prettier 运行 eslint 的最佳方式是什么?

这是我的文件:

.eslintrc.js

module.exports = {
  env: {
    browser: true,
    es2021: true,
    jest: true,
  },
  extends: [
    'plugin:react/recommended',
    'airbnb',
    'plugin:prettier/recommended',
  ],
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
    ecmaVersion: 12,
    sourceType: 'module',
  },
  plugins: ['react', 'prettier'],
  rules: {
    'prettier/prettier': 'error',
    'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx'] }],
  },
};

.prettierrc.js

module.exports = {
    trailingComma: "es5",
    tabWidth: 2,
    semi: true,
    singleQuote: true,
  };

在我的 package.json 中

"devDependencies": {
    "eslint": "^7.25.0",
    "eslint-config-airbnb": "^18.2.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-prettier": "^3.4.0",
    "eslint-plugin-react": "^7.23.2",
    "eslint-plugin-react-hooks": "^4.2.0",
    "prettier": "^2.2.1"
  }

【问题讨论】:

    标签: javascript reactjs eslint prettier eslint-config-airbnb


    【解决方案1】:

    有很多方法可以设置 prettier 以使用 eslint,这可能会造成混淆。

    要将 prettier 作为 eslint 规则运行,您需要添加一个允许 eslint 运行 prettier 的规则。您可以使用 eslint-plugin-prettier 插件来做到这一点。

      "plugins": ["prettier"],          // Defines a rule that allows eslint to run prettier.
      "rules": {
        "prettier/prettier": "error"    // Turns on that rule.
      }
    

    您还想关闭可能与 prettier 冲突的 eslint 规则。您可以使用 eslint-config-prettier 扩展名来执行此操作。请注意,这应该出现在任何其他扩展之后,以便根据需要覆盖规则。

    "extends": [
        /*other extensions*/, 
        "prettier"                      // Turns off conflicting eslint rules.  
    ]             
    

    根据他们的文档,听起来更漂亮的插件附带的推荐扩展实际上会为您处理所有事情,因此您应该能够侥幸逃脱:

      extends: [
        // .. other extensions
        'plugin:prettier/recommended',
      ]
    

    https://github.com/prettier/eslint-plugin-prettier

    另外,如果第三方插件有自己的规则可能与 prettier 冲突,您过去必须在插件列表中添加 "prettier/that-plugin" - "prettier/react" 以告知eslint 对于这些非标准规则也同样适用。但这似乎不再需要了。

    【讨论】:

      【解决方案2】:

      我使用this guide 在 Yarn monorepo/workspace 上使用 airbnb 的样式指南设置 eslint。

      【讨论】:

        猜你喜欢
        • 2021-03-10
        • 2017-06-16
        • 2021-09-20
        • 2020-03-15
        • 2021-09-29
        • 1970-01-01
        • 2018-11-27
        • 2017-12-03
        • 1970-01-01
        相关资源
        最近更新 更多