命令行界面 | Command Line Interface
Command Line Interface
要在 Node.js 上运行 ESLint,您必须安装 npm。如果 npm 未安装,请按照此处的说明进行操作:https://www.npmjs.com/
一旦安装了 npm,运行以下内容
npm i -g eslint
这将从 npm 存储库安装 ESLint CLI。要运行 ESLint,请使用以下格式:
eslint [options] [file|dir|glob]*
如:
eslint file1.js file2.js
或者:
eslint lib/**
请注意,当传递一个 glob
作为参数时,它会被你的 shell 扩展。扩展的结果可能因您的外壳及其配置而异。如果要使用节点glob
语法,则必须引用参数(如果需要在 Windows 中运行,请使用双引号),如下所示:
eslint "lib/**"
选项
命令行实用程序有几个选项。您可以通过运行查看选项eslint -h
。
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
不允许使用第二种样式)来指定。
例子:
eslint --ext .jsx --ext .js lib/
eslint --ext .jsx,.js lib/
基本配置
-c, --config
此选项允许您为 ESLint 指定其他配置文件(请参阅配置 ESLint 以了解更多信息)。
例子:
eslint -c ~/my-eslint.json file.js
本示例使用位于的配置文件~/my-eslint.json
。
它也接受可共享配置的模块 ID 。
例子:
eslint -c myconfig file.js
这个例子直接使用可共享的配置eslint-config-myconfig
。
--no-eslintrc
禁用使用配置.eslintrc
和package.json
文件。
例子:
eslint --no-eslintrc file.js
--env
该选项启用特定的环境。有关每个环境定义的全局变量的详细信息,请参阅配置文档。该选项仅支持环境; 它不会禁用在其他配置文件中设置的环境。要指定多个环境,请使用逗号分隔它们,或多次使用该选项。
例子:
eslint --env browser,node file.js
eslint --env browser --env node file.js
--ext
此选项允许您指定在您指定的目录中搜索 JavaScript 文件时,ESLint 将使用哪些文件扩展名。默认情况下,它使用.js
唯一的文件扩展名。
例子:
# 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
写入。要指定多个全局变量,请使用逗号分隔它们,或多次使用该选项。
例子:
eslint --global require,exports:true file.js
eslint --global require --global exports:true
--parser
该选项允许您指定 ESLint 使用的解析器。默认情况下,espree
将被使用。
--parser-options
该选项允许您指定 ESLint 使用的解析器选项。请注意,可用的解析器选项由正在使用的解析器决定。
例子:
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中添加尾随。否则,路径将被认为是一个文件。
例子:
eslint "src/**/*.js" --cache --cache-location "/Users/user/.eslintcache/"
指定规则和插件
--rulesdir
此选项允许您指定另一个目录来加载规则文件。这使您可以在运行时动态加载新规则。如果您的自定义规则不适合与 ESLint 捆绑在一起,这非常有用。
例子:
eslint --rulesdir my-rules/ file.js
自定义规则目录中的规则必须遵循与捆绑规则相同的格式才能正常工作。您还可以通过包含多个--rulesdir
选项来为自定义规则指定多个位置:
eslint --rulesdir my-rules/ --rulesdir my-other-rules/ file.js
请注意,与核心规则和插件规则一样,您仍然需要在配置中或通过--rule
CLI选项启用规则才能在分类期间实际运行这些规则。使用指定规则目录--rulesdir
不会自动启用该目录中的规则。
--plugin
该选项指定要加载的插件。您可以eslint-plugin-
从插件名称中省略前缀。
在使用插件之前,您必须使用 npm 进行安装。
例子:
eslint --plugin jquery file.js
eslint --plugin eslint-plugin-mocha file.js
--rule
该选项指定要使用的规则。这些规则将与用配置文件指定的任何规则合并。(您可以使用它--no-eslintrc
来更改该行为。)要定义多个规则,请使用逗号分隔它们,或多次使用该选项。该Levn格式被用于指定的规则。
如果规则是在插件中定义的,则必须在规则 ID 前加上插件名称和a /
。
例子:
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
。您可以通过提供不同文件的路径来覆盖此行为。
例子:
eslint --ignore-path tmp/.eslintignore file.js
eslint --ignore-path .gitignore file.js
--no-ignore
禁用从文件的排除.eslintignore
,--ignore-path
和--ignore-pattern
。
例子:
eslint --no-ignore file.js
--ignore-pattern
此选项允许您指定要忽略的文件模式(除了那些模式之外.eslintignore
)。您可以重复该选项以提供多种模式。支持的语法与.eslintignore
文件中的相同。你应该引用你的模式,以避免 shell 模式的 shell 解释。
例子:
eslint --ignore-pattern '/lib/' --ignore-pattern '/src/vendor/*' .
使用stdin
--stdin
该选项告诉 ESLint 从 STDIN 而不是从文件中读取和粘贴源代码。您可以使用它将管道代码传递给 ESLint。
例子:
cat myfile.js | eslint --stdin
--stdin-filename
这个选项允许你指定一个文件名来处理 STDIN。这在处理来自STDIN 的文件时很有用,并且您有依赖于文件名的规则。
例子
cat myfile.js | eslint --stdin --stdin-filename=myfile.js
处理警告
--quiet
该选项允许您禁用警告报告。如果启用此选项,则只有错误由 ESLint 报告。
例子:
eslint --quiet file.js
--max-warnings
此选项允许您指定警告阈值,如果您的项目中存在太多警告级别的规则违规,则可以使用该阈值强制 ESLint 以错误状态退出。
通常,如果 ESLint 运行并且没有发现错误(只有警告),它将以成功退出状态退出。但是,如果--max-warnings
指定并且总警告计数大于指定的阈值,则 ESLint 将退出并显示错误状态。指定阈值-1
或省略此选项将防止此行为。
例子:
eslint --max-warnings 10 file.js
输出
-o, --output-file
启用报告以写入文件。
例子:
eslint -o ./test/test.html
指定时,将给出的格式输出到提供的文件名中。
-f, --format
该选项指定控制台的输出格式。可能的格式是:
- checkstyle
- codeframe
- compact
- html
- jslint-xml
- json
- junit
- stylish (the default)
- table
- tap
- unix
- visualstudio
例子:
eslint -f compact file.js
您还可以通过指定自定义格式器文件的路径,从命令行使用自定义格式器。
例子:
eslint -f ./customformat.js file.js
使用或不使用eslint-formatter-
前缀解析 npm 安装的格式化程序。
例子:
npm install eslint-formatter-pretty
eslint -f pretty file.js
// equivalent:
eslint -f eslint-formatter-pretty file.js
指定时,给定格式输出到控制台。如果您想将输出保存到文件中,可以在命令行上这样做:
eslint -f compact file.js > results.txt
This saves the output into the results.txt
file.
--color, --no-color
该选项强制启用/禁用彩色输出。您可以使用它来覆盖默认行为,即启用彩色输出,除非未检测到 TTY,例如eslint
通过管道cat
或通过管道时less
。
例子:
eslint --color file.js | cat
eslint --no-color file.js
杂项
--init
该选项将启动配置初始化向导。它旨在帮助新用户快速创建.eslintrc 文件,方法是回答几个问题,选择常用的样式指南,或者检查源文件并尝试自动生成合适的配置。
生成的配置文件将在当前目录中创建。
--fix
该选项指示 ESLint 尝试尽可能多地解决问题。修复是针对实际文件本身进行的,只有剩余的未修复问题才会输出。并非所有问题都可以使用此选项解决,并且该选项在以下情况下不起作用:
- 当代码传递给 ESLint 时,此选项会引发错误。
- 该选项对使用处理器的代码没有影响,除非处理器选择允许自动修复。
如果您想修复代码stdin
或以其他方式想要修复而不实际将它们写入文件,请使用该--fix-dry-run
选项。
--fix-dry-run
该选项--fix
与一个区别具有相同的效果:修复程序不保存到文件系统。这使得修复代码stdin
(当与--stdin
标志一起使用时)成为可能。
由于默认格式化程序不输出固定代码,因此您必须使用另一个(例如json
)才能获得修复程序。以下是这种模式的一个例子:
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
例子:
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
选项,这将导致未使用的伪指令的新报告错误。
例子:
eslint --report-unused-disable-directives file.js
--print-config
该选项输出用于传递文件的配置。当存在时,不会执行任何 linting 操作,只有与配置相关的选项有效。
例子:
eslint --print-config file.js
忽略来自linting的文件
.eslintignore
当 ESLint 在目录上运行时,ESLint 支持文件从linting 进程中排除文件。作为单独的 CLI 参数给出的文件将免除排除。该.eslintignore
文件是一个纯文本文件,每行包含一个模式。它可以位于任何目标目录的祖先中; 它会影响其包含目录中的文件以及所有子目录。以下是一个简单的.eslintignore
文件示例:
node_modules/*
**/vendor/*.js
有关支持的模式和目录的更详细的分类,可以在配置 ESLint 中找到默认情况下忽略的 ESLint。