簡體   English   中英

在 React 項目中使用 Prettier 安裝 ESlint 的正確方法

[英]Proper way of Installing ESlint with Prettier in a React Project

我最近開始在我的項目中使用 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"
  }

有很多方法可以設置 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 對於這些非標准規則也同樣相關。 但這似乎不再需要。

我使用本指南在 Yarn monorepo/workspace 上使用 airbnb 的樣式指南設置 eslint。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM