此页面内容来自 JSHint 项目仓库。如果您发现错误,请 提交问题 或(更佳)提交拉取请求!
JSHint CLI 可以通过 npm 安装(有关说明,请参阅 安装页面)。
内容:指定输入 · 指定 Lint 选项 · 特殊选项 · 忽略文件 · 选项
jshint
可执行文件接受文件系统路径作为命令行参数。如果提供的路径描述了一个文件,则可执行文件将读取该文件并检查其中包含的 JavaScript 代码。
$ jshint myfile.js
myfile.js: line 10, col 39, Octal literals are not allowed in strict mode.
1 error
如果提供的路径描述了一个文件系统目录,则 JSHint 将递归遍历该目录和任何子目录,读取所有 JavaScript 文件并检查其内容。
$ tree a-directory/
a-directory/
├── file-1.js
└── nested
└── file-2.js
1 directory, 2 files
$ jshint a-directory/
a-directory/file-1.js: line 3, col 1, 'with' is not allowed in strict mode.
a-directory/nested/file-2.js: line 3, col 3, Unreachable 'void' after 'return'.
2 errors
如果文件路径为短横线 (-
),则 JSHint 将从标准输入读取。
jshint
可执行文件能够应用在外部 JSON 格式文件指定的 Lint 选项。这样的文件可能如下所示
{
"curly": true,
"eqeqeq": true,
"nocomma": true
}
jshint
将在多个位置查找此配置,并在第一次匹配时停止
--config
选项 指定的位置package.json
的文件(配置应声明为该文件 JSON 值的 jshintConfig
属性).jshintrc
的文件.jshintrc
的文件如果此搜索没有结果,则 jshint
将检查输入代码,就像没有启用任何 Lint 规则一样。
除了 其他上下文中可用的选项 之外,命令行界面还提供了一些 特殊选项
以下选项与文件系统相关,并且仅在配置文件中可用(即,不在内联指令或 API 中可用)
extends
使用另一个配置文件作为“基础”。此选项的值应为另一个配置文件的文件路径,并且该路径应相对于当前文件。
例如,您可以在项目的顶层目录中定义一个 .jshintrc
文件(例如,./.jshintrc
)来指定您希望在整个项目中使用的 Lint 选项
{
"undef": true,
"unused": true
}
您可能希望将此配置重新用于项目的自动化测试,但也要 允许特定于测试环境的全局变量。在这种情况下,您可以在其测试目录中创建一个新文件(例如,./test/.jshintrc
),并包含以下配置
{
"extends": "../.jshintrc",
"globals": {
"test": false,
"assert": false
}
}
overrides
指定仅应应用于与给定路径模式匹配的文件的选项。
以下配置文件 禁止变量遮蔽 所有文件,并且 仅允许那些以 -test.js
结尾的文件将表达式用作语句
{
"shadow": false,
"overrides": {
"lib/*-test.js": {
"expr": true
}
}
}
jshint
可以配置为根据其在文件系统中的位置忽略文件。您可以创建一个专用的“忽略”文件,以列出任何数量的文件名、文件路径或不应检查的文件路径模式。路径模式将使用 minimatch
npm 模块 进行解释,该模块本身基于 Unix 文件名匹配语法 fnmatch。
build/
src/**/tmp.js
jshint
将在多个位置查找此配置,并在第一次匹配时停止
--exclude-path
选项 指定的位置.jshintignore
的文件如果此搜索没有结果,则 jshint
不会忽略任何文件。
--config
显式设置 jshint
应从中加载 Lint 选项的文件系统上的位置。
$ jshint --config ../path/to/my/config.json
--reporter
允许您通过用自己的实现替换其默认输出函数来修改 JSHint 的输出。
$ jshint --reporter=myreporter.js myfile.js
此选项还支持两个预定义的报告程序:jslint,使输出与 JSLint 兼容,以及 checkstyle,使输出与 CheckStyle XML 兼容。
$ jshint --reporter=checkstyle myfile.js
<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
<file name="myfile.js">
<error line="10" column="39" severity="error"
message="Octal literals are not allowed in strict mode."/>
</file>
</checkstyle>
另请参阅:编写您自己的 JSHint 报告程序。
--verbose
将消息代码添加到 JSHint 输出中。
--show-non-errors
显示 JSHint 生成的其他数据。
$ jshint --show-non-errors myfile.js
myfile.js: line 10, col 39, Octal literals are not allowed in strict mode.
1 error
myfile.js:
Unused variables:
foo, bar
--extra-ext
允许您指定要检查的其他文件扩展名(默认值为 .js)。
--extract=[auto|always|never]
告诉 JSHint 在检查之前从 HTML 文件中提取 JavaScript
tmp ☭ cat test.html
<html>
<head>
<title>Hello, World!</title>
<script>
function hello() {
return "Hello, World!";
}
</script>
</head>
<body>
<h1>Hello, World!</h1>
<script>
console.log(hello())
</script>
</body>
</html>
tmp ☭ jshint --extract=auto test.html
test.html: line 13, col 27, Missing semicolon.
1 error
如果将其设置为 always,则 JSHint 将始终尝试提取 JavaScript。如果将其设置为 auto,则仅当文件看起来像是 HTML 文件时才会尝试提取。
--exclude
允许您指定不想检查的目录。
--exclude-path
允许您提供自己的 .jshintignore 文件。例如,您可以将 JSHint 指向您的 .gitignore 文件并使用它代替默认的 .jshintignore。
--prereq
允许您指定先决条件文件,即包含整个项目中使用的全局变量定义的文件。
--help
显示一个类似于您现在正在阅读的内容的简洁帮助消息。
--version
显示已安装的 JSHint 版本。