Prettier 和/或 Eslint?

Prettier and / or Eslint?

我从事的大多数项目都只是启动,最多禁用一个让我烦恼的 linting 规则。也就是说我对linting和linters了解不多,除了eslint无处不在。

我现在正在处理的一个 Vue 项目(我最初没有构建)有四个 linting 模块,我现在想了解它们是否都是必需的,它们是否相互冲突或相互补充.我收到了太多无法使用 --fix 标志修复的黄色警告,我想卸载所有内容并安装一个 linter 来统治它们。

项目 package.json 有这些:

{
  "eslint": "^7.3.1",
  "eslint-plugin-prettier": "^3.1.1",
  "eslint-plugin-vue": "^6.2.2",
  "lint-staged": "^10.2.7"
}

想法?

我的eslintrc.js

module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: ["plugin:vue/essential", "@vue/prettier"],
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "off" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
    "max-len": [0, 0, 0],
    singleQuote: 0,
    trailingComma: 0,
    "no-unused-vars": 0,
    "vue/no-unused-components": 0,
  },
  parserOptions: {
    parser: "babel-eslint",
  },
  overrides: [
    {
      files: ["**/__tests__/*.{j,t}s?(x)", "**/tests/unit/**/*.spec.{j,t}s?(x)"],
      env: {
        jest: true,
      },
    },
  ],
};

不确定我是否可以给出直接答案,但是通过 eslint-plugin-prettiereslintprettier 结合起来是非常常见的。我们使用 prettier 纯粹用于代码格式规则,例如:

  • 单引号与双引号
  • 最大行长度
  • 分号与否

eslint 更常用于查找代码中的错误,否则这些错误直到运行时才被发现。并非 eslint 中的所有规则都可以通过 eslint --fix 修复,但很多都可以。你的 .eslintrc 长什么样?