首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

命令行界面 | Command Line Interface

要在 Node.js 上运行 ESLint,您必须安装 npm。如果 npm 未安装,请按照此处的说明进行操作:https://www.npmjs.com/

一旦安装了 npm,运行以下内容

代码语言:javascript
复制
npm i -g eslint

这将从 npm 存储库安装 ESLint CLI。要运行 ESLint,请使用以下格式:

代码语言:javascript
复制
eslint [options] [file|dir|glob]*

如:

代码语言:javascript
复制
eslint file1.js file2.js

或者:

代码语言:javascript
复制
eslint lib/**

请注意,当传递一个 glob 作为参数时,它会被你的 shell 扩展。扩展的结果可能因您的外壳及其配置而异。如果要使用节点glob语法,则必须引用参数(如果需要在 Windows 中运行,请使用双引号),如下所示:

代码语言:javascript
复制
eslint "lib/**"

选项

命令行实用程序有几个选项。您可以通过运行查看选项eslint -h

代码语言:javascript
复制
eslint [options] file.js [file.js] [dir]

Basic configuration:
  -c, --config path::String      Use configuration from this file or shareable config
  --no-eslintrc                  Disable use of configuration from .eslintrc
  --env [String]                 Specify environments
  --ext [String]                 Specify JavaScript file extensions - default: .js
  --global [String]              Define global variables
  --parser String                Specify the parser to be used
  --parser-options Object        Specify parser options

Caching:
  --cache                        Only check changed files - default: false
  --cache-file path::String      Path to the cache file. Deprecated: use --cache-location - default: .eslintcache
  --cache-location path::String  Path to the cache file or directory

Specifying rules and plugins:
  --rulesdir [path::String]      Use additional rules from this directory
  --plugin [String]              Specify plugins
  --rule Object                  Specify rules

Ignoring files:
  --ignore-path path::String     Specify path of ignore file
  --no-ignore                    Disable use of ignore files and patterns
  --ignore-pattern [String]      Pattern of files to ignore (in addition to those in .eslintignore)

Using stdin:
  --stdin                        Lint code provided on <STDIN> - default: false
  --stdin-filename String        Specify filename to process STDIN as

Handling warnings:
  --quiet                        Report errors only - default: false
  --max-warnings Int             Number of warnings to trigger nonzero exit code - default: -1

Output:
  -o, --output-file path::String  Specify file to write report to
  -f, --format String            Use a specific output format - default: stylish
  --color, --no-color            Force enabling/disabling of color

Miscellaneous:
  --init                         Run config initialization wizard - default: false
  --fix                          Automatically fix problems
  --fix-dry-run                  Automatically fix problems without saving the changes to the file system
  --debug                        Output debugging information
  -h, --help                     Show help
  -v, --version                  Output the version number
  --no-inline-config             Prevent comments from changing config or rules
  --report-unused-disable-directives  Adds reported errors for unused eslint-disable directives
  --print-config path::String    Print the configuration for the given file

接受数组值的选项可以通过重复选项或使用逗号分隔列表(--ignore-pattern不允许使用第二种样式)来指定。

例子:

代码语言:javascript
复制
eslint --ext .jsx --ext .js lib/

eslint --ext .jsx,.js lib/

基本配置

-c, --config

此选项允许您为 ESLint 指定其他配置文件(请参阅配置 ESLint 以了解更多信息)。

例子:

代码语言:javascript
复制
eslint -c ~/my-eslint.json file.js

本示例使用位于的配置文件~/my-eslint.json

它也接受可共享配置的模块 ID 。

例子:

代码语言:javascript
复制
eslint -c myconfig file.js

这个例子直接使用可共享的配置eslint-config-myconfig

--no-eslintrc

禁用使用配置.eslintrcpackage.json文件。

例子:

代码语言:javascript
复制
eslint --no-eslintrc file.js

--env

该选项启用特定的环境。有关每个环境定义的全局变量的详细信息,请参阅配置文档。该选项仅支持环境; 它不会禁用在其他配置文件中设置的环境。要指定多个环境,请使用逗号分隔它们,或多次使用该选项。

例子:

代码语言:javascript
复制
eslint --env browser,node file.js
eslint --env browser --env node file.js

--ext

此选项允许您指定在您指定的目录中搜索 JavaScript 文件时,ESLint 将使用哪些文件扩展名。默认情况下,它使用.js唯一的文件扩展名。

例子:

代码语言:javascript
复制
# Use only .js2 extension
eslint . --ext .js2

# Use both .js and .js2
eslint . --ext .js --ext .js2

# Also use both .js and .js2
eslint . --ext .js,.js2

注意: --ext仅当参数是目录时才使用。如果您使用 glob 模式或文件名,则会--ext被忽略。

例如,eslint lib/* --ext .js将匹配目录内的所有文件lib/,而不管其扩展名。

--global

该选项定义全局变量,以便它们不会被标记为no-undef规则未定义。默认情况下,任何指定的全局变量都被假定为只读,但追加:true到变量的名称可以确保no-undef写入。要指定多个全局变量,请使用逗号分隔它们,或多次使用该选项。

例子:

代码语言:javascript
复制
eslint --global require,exports:true file.js
eslint --global require --global exports:true

--parser

该选项允许您指定 ESLint 使用的解析器。默认情况下,espree将被使用。

--parser-options

该选项允许您指定 ESLint 使用的解析器选项。请注意,可用的解析器选项由正在使用的解析器决定。

例子:

代码语言:javascript
复制
echo '3 ** 4' | eslint --stdin --parser-options=ecmaVersion:6 # will fail with a parsing error
echo '3 ** 4' | eslint --stdin --parser-options=ecmaVersion:7 # succeeds, yay!

高速缓存

--cache

存储有关处理文件的信息,以便仅对已更改的文件进行操作。缓存.eslintcache默认存储。启用此选项可以通过确保只更改已更改的文件来显着提高 ESLint 的运行时间。

注意:如果您运行 ESLint,--cache然后不运行 ESLint --cache,则该.eslintcache文件将被删除。这是必要的,因为lint的结果可能会改变并使之.eslintcache失效。如果要控制何时删除缓存文件,请使用--cache-location指定缓存文件的备用位置。

--cache-file

缓存文件的路径。如果没有指定.eslintcache将被使用。该文件将在eslint命令执行的目录中创建。弃用--cache-location改为使用。

--cache-location

缓存位置的路径。可以是文件或目录。如果没有指定位置,.eslintcache将被使用。在这种情况下,该文件将在eslint命令执行的目录中创建。

如果指定了目录,则将在指定文件夹内创建缓存文件。该文件的名称将基于当前工作目录(CWD)的哈希值。例如:.cache_hashOfCWD

重要说明:如果缓存目录不存在,请确保/在* nix系统或\Windows中添加尾随。否则,路径将被认为是一个文件。

例子:

代码语言:javascript
复制
eslint "src/**/*.js" --cache --cache-location "/Users/user/.eslintcache/"

指定规则和插件

--rulesdir

此选项允许您指定另一个目录来加载规则文件。这使您可以在运行时动态加载新规则。如果您的自定义规则不适合与 ESLint 捆绑在一起,这非常有用。

例子:

代码语言:javascript
复制
eslint --rulesdir my-rules/ file.js

自定义规则目录中的规则必须遵循与捆绑规则相同的格式才能正常工作。您还可以通过包含多个--rulesdir选项来为自定义规则指定多个位置:

代码语言:javascript
复制
eslint --rulesdir my-rules/ --rulesdir my-other-rules/ file.js

请注意,与核心规则和插件规则一样,您仍然需要在配置中或通过--ruleCLI选项启用规则才能在分类期间实际运行这些规则。使用指定规则目录--rulesdir不会自动启用该目录中的规则。

--plugin

该选项指定要加载的插件。您可以eslint-plugin-从插件名称中省略前缀。

在使用插件之前,您必须使用 npm 进行安装。

例子:

代码语言:javascript
复制
eslint --plugin jquery file.js
eslint --plugin eslint-plugin-mocha file.js

--rule

该选项指定要使用的规则。这些规则将与用配置文件指定的任何规则合并。(您可以使用它--no-eslintrc来更改该行为。)要定义多个规则,请使用逗号分隔它们,或多次使用该选项。该Levn格式被用于指定的规则。

如果规则是在插件中定义的,则必须在规则 ID 前加上插件名称和a /

例子:

代码语言:javascript
复制
eslint --rule 'quotes: [2, double]'
eslint --rule 'guard-for-in: 2' --rule 'brace-style: [2, 1tbs]'
eslint --rule 'jquery/dollar-sign: 2'

忽略文件

--ignore-path

该选项允许您指定要用作您的文件.eslintignore。默认情况下,ESLint 在当前工作目录中查找.eslintignore。您可以通过提供不同文件的路径来覆盖此行为。

例子:

代码语言:javascript
复制
eslint --ignore-path tmp/.eslintignore file.js
eslint --ignore-path .gitignore file.js

--no-ignore

禁用从文件的排除.eslintignore--ignore-path--ignore-pattern

例子:

代码语言:javascript
复制
eslint --no-ignore file.js

--ignore-pattern

此选项允许您指定要忽略的文件模式(除了那些模式之外.eslintignore)。您可以重复该选项以提供多种模式。支持的语法与.eslintignore文件中的相同。你应该引用你的模式,以避免 shell 模式的 shell 解释。

例子:

代码语言:javascript
复制
eslint --ignore-pattern '/lib/' --ignore-pattern '/src/vendor/*' .

使用stdin

--stdin

该选项告诉 ESLint 从 STDIN 而不是从文件中读取和粘贴源代码。您可以使用它将管道代码传递给 ESLint。

例子:

代码语言:javascript
复制
cat myfile.js | eslint --stdin

--stdin-filename

这个选项允许你指定一个文件名来处理 STDIN。这在处理来自STDIN 的文件时很有用,并且您有依赖于文件名的规则。

例子

代码语言:javascript
复制
cat myfile.js | eslint --stdin --stdin-filename=myfile.js

处理警告

--quiet

该选项允许您禁用警告报告。如果启用此选项,则只有错误由 ESLint 报告。

例子:

代码语言:javascript
复制
eslint --quiet file.js

--max-warnings

此选项允许您指定警告阈值,如果您的项目中存在太多警告级别的规则违规,则可以使用该阈值强制 ESLint 以错误状态退出。

通常,如果 ESLint 运行并且没有发现错误(只有警告),它将以成功退出状态退出。但是,如果--max-warnings指定并且总警告计数大于指定的阈值,则 ESLint 将退出并显示错误状态。指定阈值-1或省略此选项将防止此行为。

例子:

代码语言:javascript
复制
eslint --max-warnings 10 file.js

输出

-o, --output-file

启用报告以写入文件。

例子:

代码语言:javascript
复制
eslint -o ./test/test.html

指定时,将给出的格式输出到提供的文件名中。

-f, --format

该选项指定控制台的输出格式。可能的格式是:

  • checkstyle
  • codeframe
  • compact
  • html
  • jslint-xml
  • json
  • junit
  • stylish (the default)
  • table
  • tap
  • unix
  • visualstudio

例子:

代码语言:javascript
复制
eslint -f compact file.js

您还可以通过指定自定义格式器文件的路径,从命令行使用自定义格式器。

例子:

代码语言:javascript
复制
eslint -f ./customformat.js file.js

使用或不使用eslint-formatter-前缀解析 npm 安装的格式化程序。

例子:

代码语言:javascript
复制
npm install eslint-formatter-pretty

eslint -f pretty file.js

// equivalent:
eslint -f eslint-formatter-pretty file.js

指定时,给定格式输出到控制台。如果您想将输出保存到文件中,可以在命令行上这样做:

代码语言:javascript
复制
eslint -f compact file.js > results.txt

This saves the output into the results.txt file.

--color, --no-color

该选项强制启用/禁用彩色输出。您可以使用它来覆盖默认行为,即启用彩色输出,除非未检测到 TTY,例如eslint通过管道cat或通过管道时less

例子:

代码语言:javascript
复制
eslint --color file.js | cat
eslint --no-color file.js

杂项

--init

该选项将启动配置初始化向导。它旨在帮助新用户快速创建.eslintrc 文件,方法是回答几个问题,选择常用的样式指南,或者检查源文件并尝试自动生成合适的配置。

生成的配置文件将在当前目录中创建。

--fix

该选项指示 ESLint 尝试尽可能多地解决问题。修复是针对实际文件本身进行的,只有剩余的未修复问题才会输出。并非所有问题都可以使用此选项解决,并且该选项在以下情况下不起作用:

  1. 当代码传递给 ESLint 时,此选项会引发错误。
  1. 该选项对使用处理器的代码没有影响,除非处理器选择允许自动修复。

如果您想修复代码stdin或以其他方式想要修复而不实际将它们写入文件,请使用该--fix-dry-run选项。

--fix-dry-run

该选项--fix与一个区别具有相同的效果:修复程序不保存到文件系统。这使得修复代码stdin(当与--stdin标志一起使用时)成为可能。

由于默认格式化程序不输出固定代码,因此您必须使用另一个(例如json)才能获得修复程序。以下是这种模式的一个例子:

代码语言:javascript
复制
getSomeText | eslint --stdin --fix-dry-run --format=json

此标志对于需要从命令行自动修补文本而不将其保存到文件系统的集成(例如编辑器插件)非常有用。

--debug

该选项将调试信息输出到控制台。当您看到问题并且难以指出问题时,此信息非常有用。ESLint 团队可能会要求提供这些调试信息以帮助解决错误。

-h, --help

该选项输出帮助菜单,显示所有可用选项。如果存在,所有其他选项都将被忽略。

-v, --version

该选项将当前的 ESLint 版本输出到控制台上。如果存在,所有其他选项都将被忽略。

--no-inline-config

此选项可防止内联注释出现类似/*eslint-disable*//*global foo*/不起作用的情况。这使您可以设置一个 ESLint 配置,而无需修改它的文件。所有内联配置注释都被忽略,例如:

  • /*eslint-disable*/
  • /*eslint-enable*/
  • /*global*/
  • /*eslint*/
  • /*eslint-env*/
  • // eslint-disable-line
  • // eslint-disable-next-line

例子:

代码语言:javascript
复制
eslint --no-inline-config file.js

--report-unused-disable-directives

此选项会导致 ESLint 报告指令注释,例如// eslint-disable-line无论如何都不会在该行上报告错误。通过清除eslint-disable不再适用的旧评论,这可以有效地防止未来的错误被意外压制。

警告:使用此选项时,无论何时升级 ESLint 或自定义规则,都有可能开始报告新错误。例如,假设规则有一个导致其报告误报的错误,并且eslint-disable添加了一条评论来抑制错误的报告。如果在 ESLint 的修补程序版本中修复了该错误,则该eslint-disable注释将变为未使用,因为 ESLint 不再生成不正确的报告。如果使用该report-unused-disable-directives选项,这将导致未使用的伪指令的新报告错误。

例子:

代码语言:javascript
复制
eslint --report-unused-disable-directives file.js

--print-config

该选项输出用于传递文件的配置。当存在时,不会执行任何 linting 操作,只有与配置相关的选项有效。

例子:

代码语言:javascript
复制
eslint --print-config file.js

忽略来自linting的文件

.eslintignore当 ESLint 在目录上运行时,ESLint 支持文件从linting 进程中排除文件。作为单独的 CLI 参数给出的文件将免除排除。该.eslintignore文件是一个纯文本文件,每行包含一个模式。它可以位于任何目标目录的祖先中; 它会影响其包含目录中的文件以及所有子目录。以下是一个简单的.eslintignore文件示例:

代码语言:javascript
复制
node_modules/*
**/vendor/*.js

有关支持的模式和目录的更详细的分类,可以在配置 ESLint 中找到默认情况下忽略的 ESLint。

扫码关注腾讯云开发者

领取腾讯云代金券