0

我想让 Node.js 中的服务器端文件与我的 Vue.js 前端具有完全相同的 ESLint 规则。我的 Vue 项目中的.eslintrc.js文件如下所示:

module.exports = {
  root: true,
  env: {
    node: true
  },
  extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"],
  parserOptions: {
    parser: "babel-eslint"
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off"
  }
};

我的 Node.js.eslintrc.js看起来像这样:

module.exports = {
    root: true,
    env: {
        "es6": true,
        "node": true
    },
    extends: [
        "plugin:prettier/recommended"
    ],
    globals: {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    parserOptions: {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    rules: {
        "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
        "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
    }
}

如果不导入所有 Vue 特定的 linting 规则(只需要 vanilla javascript 相关规则),如何在我的 Node.js 上获得相同的 ESLint 规则,而无需手动查找每个前端规则并将其复制到后端?

4

1 回答 1

0

您可以简单地从前端导入它.eslintrc.js

你的nodejs.eslintrc.js应该是:

const frontEndRc = require("path_to_your_frontend_eslintrc");

module.exports = {
    root: true,
    env: {
        "es6": true,
        "node": true
    },
    extends: [
        "plugin:prettier/recommended"
    ],
    globals: {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    parserOptions: {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    rules: {
        ...frontEndRc.rules
    }
}
于 2020-07-06T07:08:12.990 回答