Как заставить Prettier использовать реквизиты с кавычками (и уважать мои правила eslint)?

Я установил в своем .eslintrc правило "quote-props": [2, "always"]. Когда я сделаю eslint --fix, он будет работать нормально.

Но я форматирую свой код с помощью Prettier. К сожалению, у Prettier нет always, но as-needed|preserve|consistent вместо quote-props. Так что в результате всегда удаляются мои реквизиты цитаты, когда я форматирую с Prettier.

Как я могу заставить Prettier соблюдать это правило? Добавление // prettier-ignore не вариант.

.eslintrc:

"extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:react-hooks/recommended",
    "prettier",
    "prettier/react"
], // Prettier or Prettier Plugins (here for React) must always be at the end
"env": {
    "cypress/globals": true,
    "node": true,
    "browser": true,
    "es6": true
},
"plugins": ["react", "cypress", "prettier"],
"settings": {
    "react": {
        "createClass": "createClass",
        // Regex for Component Factory to use, default to "createClass"
        "pragma": "React",
        // Pragma to use, default to "React"
        "version": "16.13.1"
        // React version, default to the latest React stable release
    }
},
"parser": "babel-eslint",
"parserOptions": {
    "ecmaFeatures": {
        "jsx": true
    },
    "ecmaVersion": 8,
    "sourceType": "module"
},
"rules": {
    "quote-props": [2, "always"]
...

.prettierrc:

module.exports = {
trailingComma: "none",
tabWidth: 4,
bracketSpacing: true,
arrowParens: "avoid"
};

person iivn    schedule 02.12.2020    source источник


Ответы (1)


Поскольку Prettier не поддерживает параметр always-quote-props, а eslint поддерживает, я удалил параметр quote-props из своего .prettierrc-файла и установил в моем .eslintrc quote-props значение ["error", "always"].

Наконец, я использовал prettier-eslint:

Это форматирует ваш код через prettier, а затем передает результат в eslint --fix. Таким образом, вы можете получить преимущества превосходных возможностей форматирования prettier, а также воспользоваться преимуществами конфигурационных возможностей eslint.

person iivn    schedule 12.12.2020