简体   繁体   English

Prettier 没有根据我的 eslint 配置进行格式化

[英]Prettier doesn't format based on my eslint config

I have installed Eslint-Prettier extension on VSCode.我已经在 VSCode 上安装了 Eslint-Prettier 扩展。 I already have an.eslintrc.js and my default formatter (Eslint-prettier) doesn't format according to my eslint rules.我已经有了 an.eslintrc.js 并且我的默认格式化程序 (Eslint-prettier) 没有根据我的 eslint 规则进行格式化。

For example: when i type npm run eslint.例如:当我输入 npm 时运行 eslint。 --fix it deletes all semicolons, but after i hit CTRL + V, prettier adds semi colons again.. --fix 它删除了所有分号,但在我按下 CTRL + V 后,prettier 再次添加了分号..

It was working all good until I format my computer.一切正常,直到我格式化我的电脑。 Can anyone help me?谁能帮我?

my.eslintrc.js files contents is my.eslintrc.js 文件内容是

module.exports = {
  env: {
    node: true,
    es6: true,
    browser: true
  },
  parserOptions: {
    ecmaVersion: 6,
    sourceType: "module",
    ecmaFeatures: {
      jsx: true,
      modules: true,
      experimentalObjectRestSpread: true
    }
  },
  rules: {
    "no-console": "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",

    // Best Practices
    eqeqeq: "error",
    "no-invalid-this": "error",
    "no-return-assign": "error",
    "no-unused-expressions": ["error", { allowTernary: true }],
    "no-useless-concat": "error",
    "no-useless-return": "error",

    // Variable
    // 'init-declarations': 'error',
    "no-use-before-define": "error",

    // Stylistic Issues
    "array-bracket-newline": ["error", { multiline: true, minItems: null }],
    "array-bracket-spacing": "error",
    "brace-style": ["error", "1tbs", { allowSingleLine: true }],
    "block-spacing": "error",
    "comma-dangle": "error",
    "comma-spacing": "error",
    "comma-style": "error",
    "computed-property-spacing": "error",
    "func-call-spacing": "error",
    "implicit-arrow-linebreak": ["error", "beside"],
    // indent: ['error', 4],
    "keyword-spacing": "error",
    "multiline-ternary": ["error", "never"],
    // 'no-lonely-if': 'error',
    "no-mixed-operators": "error",
    "no-multiple-empty-lines": ["error", { max: 2, maxEOF: 1 }],
    "no-tabs": "error",
    "no-unneeded-ternary": "error",
    "no-whitespace-before-property": "error",
    "nonblock-statement-body-position": "error",
    "object-property-newline": [
      "error",
      { allowAllPropertiesOnSameLine: true }
    ],
    "quote-props": ["error", "as-needed"],
    // quotes: ['error', 'prefer-single'],
    semi: ["error", "never"],
    "semi-spacing": "error",
    "space-before-blocks": "error",
    // 'space-before-function-paren': 'error',
    "space-in-parens": "error",
    "space-infix-ops": "error",
    "space-unary-ops": "error",

    // ES6
    "arrow-spacing": "error",
    "no-confusing-arrow": "error",
    "no-duplicate-imports": "error",
    "no-var": "error",
    "object-shorthand": "error",
    "prefer-const": "error",
    "prefer-template": "error"
  }
}


默认格式化程序是 Prettier,eslint 给我错误

You can see that eslint says no trailing coma, after i right click one of them and fix all auto-fixable problems, problems are gone but after I save the file prettier extension puts them again.你可以看到 eslint 说没有尾随昏迷,在我右键单击其中一个并修复所有可自动修复的问题后,问题就消失了,但在我保存文件后,更漂亮的扩展名又把它们放了。

First, you need to install prettier plugin:首先,您需要安装更漂亮的插件:

npm i eslint eslint-config-prettier eslint-plugin-prettier prettier --save-dev

After that you should specify this plugin in eslint config:之后你应该在 eslint 配置中指定这个插件:

// .eslintrc.js

  "plugins": [
    ....
    "prettier"
    ....
  ],
  "rules": {
    ...
    "prettier/prettier": "error"
    ...
  }

It should be noted, if you use prettier, when it will be better if only prettier will be responsive for styling.应该注意的是,如果你使用 prettier,那么如果只有 prettier 对样式有响应会更好。 That is why i recommend you to remove all Stylistic Issues section and move them (with adaptation of course) to .prettierrc.js.这就是为什么我建议您删除所有Stylistic Issues部分并将它们(当然需要改编)移至 .prettierrc.js。 Or use community adopted rules, for instance airbnb :或者使用社区采用的规则,例如airbnb

// .eslintrc.js

  "extends": ["airbnb-base", "plugin:prettier/recommended"],

in eslint config, change在 eslint 配置中,更改


  extends: ["prettier"],

to


  extends: ['plugin:prettier/recommended'],

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM