强制 ESLint 使用 ES6

Force ESLint to use ES6

我的 ESLint 已经全部设置好并可以正常工作,但我希望它在我不使用 ES6 东西时抛出错误,例如 letconst 或箭头函数(=>).

.eslintrc

{
  "env": {
    "node": true,
    "es6": true,
    "mocha": true
  },
  "rules": {
    "semi": 2
  },
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "script",
    "ecmaFeatures": {
      "arrowFunctions": true,
      "binaryLiterals": true,
      "blockBindings": true,
      "classes": true
    }
  }
}

目前,这不会引发错误:

main.js

var stars = [];
var speed = 20;

function setup() {
  createCanvas(windowWidth, windowHeight);

  // Create 1000 stars
  for (var i = 0; i < 1000; i++) {
    stars.push(new Star());
  }
}

您没有在 for 循环中使用 i,所以这不是错误。

您可以使用 no-var 规则,但它会影响所有内容,而不仅仅是循环。

如果您在 for 循环中使用了 i,那么 no-loop-func 规则就是您要查找的内容。

如果您更喜欢将箭头函数作为回调函数,您可以使用 prefer-arrow-callback.

您可以使用 prefer-arrow-callback rule 强制使用箭头函数作为回调。

此外,prefer-const rule 会尽可能强制使用 const(即,如果永远不会重新分配变量)。