配置语言选项

JavaScript 生态系统具有多种运行时、版本、扩展和框架。其中每一个都可以有不同的支持语法和全局变量。ESLint 允许您配置特定于项目中使用的 JavaScript 的语言选项,例如自定义全局变量。您还可以使用插件来扩展 ESLint 以支持您项目的语言选项。

指定环境

环境提供预定义的全局变量。可用的环境有:

  • browser - 浏览器全局变量。
  • node - Node.js 全局变量和 Node.js 范围。
  • commonjs - CommonJS 全局变量和 CommonJS 范围(将其用于使用 Browserify/WebPack 的仅浏览器代码)。
  • shared-node-browser - Node.js 和浏览器通用的全局变量。
  • es6 - 启用除模块之外的所有 ECMAScript 6 功能(这会自动将 ecmaVersion 解析器选项设置为 6)。
  • es2016 - 添加所有 ECMAScript 2016 全局变量并自动将 ecmaVersion 解析器选项设置为 7。
  • es2017 - 添加所有 ECMAScript 2017 全局变量并自动将 ecmaVersion 解析器选项设置为 8。
  • es2018 - 添加所有 ECMAScript 2018 全局变量并自动将 ecmaVersion 解析器选项设置为 9。
  • es2019 - 添加所有 ECMAScript 2019 全局变量并自动将 ecmaVersion 解析器选项设置为 10。
  • es2020 - 添加所有 ECMAScript 2020 全局变量并自动将 ecmaVersion 解析器选项设置为 11。
  • es2021 - 添加所有 ECMAScript 2021 全局变量并自动将 ecmaVersion 解析器选项设置为 12。
  • es2022 - 添加所有 ECMAScript 2022 全局变量并自动将 ecmaVersion 解析器选项设置为 13。
  • worker - 网络工作者全局变量。
  • amd - 根据 amd 规范将 require()define() 定义为全局变量。
  • mocha - 添加所有 Mocha 测试全局变量。
  • jasmine - 为版本 1.3 和 2.0 添加所有 Jasmine 测试全局变量。
  • jest - Jest 全局变量。
  • phantomjs - PhantomJS 全局变量。
  • protractor - 量角器全局变量。
  • qunit - QUnit 全局变量。
  • jquery - jQuery 全局变量。
  • prototypejs - Prototype.js 全局变量。
  • shelljs - ShellJS 全局变量。
  • meteor - Meteor 全局变量。
  • mongo - MongoDB 全局变量。
  • applescript - AppleScript 全局变量。
  • nashorn - Java 8 Nashorn 全局变量。
  • serviceworker - Service Worker 全局变量。
  • atomtest - Atom 测试助手全局变量。
  • embertest - Ember 测试助手全局变量。
  • webextensions - WebExtensions 全局变量。
  • greasemonkey - GreaseMonkey 全局变量。

这些环境不是相互排斥的,因此您可以一次定义多个环境。

环境可以在文件内、配置文件中或使用 --env 命令行 标志指定。

使用配置注释

cdv4TTc4TbfW7zjgcN6W3rYlsEMPT24D31Cw7YZTyo8536aMFOGyjcBaK5BjKUsh/FiP55hhwr/Y5PTwp36p1lvx+hap+P6RTlkKBPKX7MZ9Qa77q7nHrC2WdxmojvC1

/* eslint-env node, mocha */

h5cL5pI5ZkP7VRr172mLGCgLj/anygFNvqpnABsZtnivzWJ12nDjsDuWaw5b9MDE

使用配置文件

VwWO+m8Vhm2DtLv/vSXcai9ZHr2b0G8+cx/vc1rDXCzlCqZsbN/m7eN/N/RvXcqMt+W+TIX09XNc+tu5KR/bovNFhTm0ZXQ8Jj7UP6I8ESBI/jKxFdEfpxwL7Ts2y18ShUDyLxt+BPQzdnofMnbWzGG2bb3uUZKnYxZ5u+2oBMD3sjIiFhUCdPz/I5B8k4e5KBRJufb/YEiknEnXjaZY5t0A5egzYrYkiZ76x6v+yhq/GGHlssTAskOHNyI7iG3pwxiYvyXii2D9H1YB1rnNVw==

{
    "env": {
        "browser": true,
        "node": true
    }
}

Cn1msdtCWnWU6JKfhrJ8cJw/SF4uG6klIk4DaQqzKus8/yp2C/S9axnHLMPoTzRq

{
    "name": "mypackage",
    "version": "0.0.1",
    "eslintConfig": {
        "env": {
            "browser": true,
            "node": true
        }
    }
}

tCRDsNy6aP6qBJ8u4t0FRA==

---
  env:
    browser: true
    node: true

使用插件

/Ka77O5hk3Bj1PgDn3UIoyjNzat0B9CZ6qikiCRRDQIBT59H823h++iQJ4JSZLxMuHagIgZyyQj7A0iVHauIqWnwSUAe/X6IOhkqeIoBGuE3BJtfn/rHU9oVhtIaSXLDEut/u1FE0FhLpe7J20XXQLOngPMu/rJlH/KLpnqCZMGt4bOtocOyiCmiRFl/CbPX5Uqim8mD+a6gXlH7xNeaVOaw1hYiNF+H4PfMjDakKMft8+XkSGOsgHcU0yjc64BR

{
    "plugins": ["example"],
    "env": {
        "example/custom": true
    }
}

Cn1msdtCWnWU6JKfhrJ8cJw/SF4uG6klIk4DaQqzKus8/yp2C/S9axnHLMPoTzRq

{
    "name": "mypackage",
    "version": "0.0.1",
    "eslintConfig": {
        "plugins": ["example"],
        "env": {
            "example/custom": true
        }
    }
}

指定全局变量

GWjSDlReaNLQXWiWJV8yOgSh0OjqmPnrBghYxv4vVBQKT/bqC+DL6HloOPsFQMFa0O4rpmO0qoN+GDRwsJ+D+hLorC+4eoP7nJ3Eva3hLZD14c9f/LheQL0h0gTOlaMRLV7+F0nCFrxj2us5vkwz+yiKbXUCoJNkb5WcwjseENIsowYPmz0NJnz53xJ/HyKPgJJg6cXGoUg+rJu1zy95mv6ONGBaH39B0qawQDxPFmGSm8bKVmR86drChxpo36M2fPH4sirtYcnmIm9bu2ehxenLI9+sXxuEelg0a44X0TxZD+aC4ohZVNU8M4dlWEcOuqv5x3xzUWnwQdSmc4q/Jrh/HraRtoO5hM1E+FRs4XllAutXyeGj45w2OB9aWR2xUuprNW78W/RXLeZG7fXBhdEcSgU3LaEp57s7HtKuvlw7DS2MCOWXsE3UuvF2asFcPvFCRVPfhHqCUJACoVwMu1PD+rylpUZmFbs6vMrbjMmjRgKt9e5bI/5i6o2zcLfxsShTkP5fNimmXePLBRv6GQD4pisg+pJWH2RiMoR9wAz6DWGS+PwFJ6dBoEmk6NXW

使用配置注释

ZWuQUJXq/TdS1lgyQ6YT4C+djLPPe3aqAL/X/hDFONuqXVELlcTlgVspV8SjcY0PxmEDIZrX8chqrVhkRvgRzl+7vWLYI+gimz9A8x13ao6e++f2BAThc342pzyJ3Olc

/* global var1, var2 */

HvP8balfqPh6Pu2Yj3kgv+Dez9bpTddnO0fcb6K55rjn7EbthpmXR27OZB2B5mqfqgTSYGSXMm2wnDcP0YRY844qp9pO80s9oH/zGZdoIvgQ1ZAG2vnJFBre/777qP01Fob9B/S56KZPDb5BpVOFEK6b9hn2i8i9MkoQFFepc2o6E5teV1eStCKuxSLtkIU6ZPnJinjveiMDtcODnrtqHCJmdnM3/cdDB9Eo31qe2T4vzYv/BZLVAt0ytA13Gm0XsNUCNo+ubVuYfjEEpGMG9KQNC4qs3ZfA3TwhWAAkRge/SZQbIzV9EgVA5aXjvXV+4omJykfBBHjol5eS/PTmhQ==

/* global var1:writable, var2:writable */

使用配置文件

VwWO+m8Vhm2DtLv/vSXcan6n+o4Sxq+G40dOcyCuDycn5gg3mdwjzKcFFCNcQTyPeyGLKVRcO42zAIqdsqOZVr8nFU1StQXSJKSa14rfBgGe4abbigGXFRKN+F38++ok40I61CqNagKCnCZwdI3eWkwbRTScZWvR27f8OSio2t9WyzfynwJguYeze0V/MW5xjNc6t39aaev2DJZJ6Xsv3oXWTRmIjXaMMXQQYul0pS31F4Ox1j0vD4eXEviF6sGebR+2h92l4nMPNYXMVC0wYAAOU+owbA9JWbh8iyP4+VbI2EjU7Wgq2mZd/+iDIsbdcal6kIjBnU02xjopnxr3duOSxmS6f7+HRM8CIGhRyjdSu//lTUfxuxVnfec2dT2WpkKBmE3TIH5s3/dFLE1NmFbL19G4rpCxsqiL924/QOI=

{
    "globals": {
        "var1": "writable",
        "var2": "readonly"
    }
}

tCRDsNy6aP6qBJ8u4t0FRA==

---
  globals:
    var1: writable
    var2: readonly

TtnNSGWZwf0iaT8RULHPFeGj2h52xiIrerEUW0k66sp78ix6yr1u+oz8NAsJ+Y+ptlboBXlehdNx+9OZP/c4dMBzc/zEj/LG/tvPssgc76auB4L5zCyZNjWWreHerdJBM+71UfFz93ZyrkOG0LjzCD0EzCVweSOKIVf8itKmqM8=

e8yTS9B2ZTlbeEp+lKFldtAhwVyCmncP/1MmTG0lTwJxNK3nHF/WE7ySS4gIqy/XGgey9Wv3idDDrvk7ZNYRTry77nPTl43H1jYY9Gd2+ox4Rh0bvN/dT7p+JtTYbiOk41uRdRAXi0e+Oj31cZOzjptgI/+iIjRHXUNIYg4QAk5zbPoFL3EMWVQMYh8hSPnvHrl1pmUhEqGOQeHceWqZ6ZCs+tLkd19DUlH6CU8R4X3d8FKRFgqn9e9mj2HXgmLmxy9RxY40qmb6rFTcgi4ADQ==

{
    "env": {
        "es6": true
    },
    "globals": {
        "Promise": "off"
    }
}

T5l58l+FRTYOw2RhG58TDOAsXxjElndgiF4GK649XrtZCqnxC3TX5t+sXP6ngSwhw3ttMs1OfMZXIusw7Kpv7egE7fO6SIqbPiXkxgt0gO6Pl8luu6qu0hg2tG+sY8x8Eu9DEsXA4pw1m84cKeA52fCakL7wH+hZAyWtPxxvDN+d0/6ekZ9/Uv014siGC/b6XvwMwQloU5V38CBYbiSkpLiME98bTfAzoNEYhdax8lzB4uJyPq5FjqfX3hYftdoAoUxdAOodqlOqNG0mnx2yxTUu6l1NSVrFeu/FhpeSG0GFfnSAEFZSOPRKd/JTnHB73u7IEniwf6xLGuyGHhJRHDjfnrkbwB5w5t44oyAmL2dBPf9f7uRjWtGrQ65ooWrs

指定解析器选项

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

{
    "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true
        }
    },
    "rules": {
        "semi": "error"
    }
}

ufInWxllGxyxW03UeIwO0Hgjci7YqNLXpULa1OjY0j0WgQ1TbFWZDyt6ZWvMmeGMrHonUuZv6v/ei5iueYAI6DG6mRcGXb6ujKWKv4URmdfyXUxxqL44ht5oS+v1sYtv0h4iWntnx3Vy/wU5jZI+GrrJOxt69+kDWUSVopBLZOk=