coffee-jshint中文文档|coffee-jshint js中文教程|解析
咖啡->JSHint
通过JSHint运行您的CoffeeScript源代码以检查错误。
注意:从 version 开始1.0.0
,coffee-jshint
将其依赖项更改为 on,coffeescript
以支持现在已弃用的coffee-script
名称。
安装
npm install coffeescript -g ## See package.json for supported versions (most)
npm install coffee-jshint -g
用法
要检查一些文件:
coffee-jshint file1.coffee file2.coffee ...
选项
JSHint 接受了一堆选项,告诉它执行或放宽各种规则。其中一些对于检查由 CoffeeScript 编译器生成的 JS 没有多大意义,因此默认情况下这些选项是打开的:
强制执行选项
-
undef
:警告使用显式未声明的变量;
放松选择
-
eqnull
:抑制关于== null
比较的警告,CoffeeScript 在其生成的 JS 中使用; -
expr
:禁止在通常您希望看到赋值或函数调用的地方使用表达式的警告,当 CoffeeScript 编译器有意这样做时,它们只会在生成的 JS 中发生; -
loopfunc
:抑制关于循环内部函数的警告,CoffeeScript 经常产生循环内部的警告,以至于很难发现假阳性之间的合法报告(由 version 引入1.1.0
); -
multistr
:抑制关于多行字符串的警告,因为 CoffeeScript 会处理它们; -
shadow
:抑制关于变量阴影的警告,即声明一个已经在外部范围内某处声明的变量,这很好,因为 CoffeeScript 具有合理的范围规则并生成使用阴影变量的安全范围的 JS; -
sub
:禁止使用[]
可以用点符号表示的符号的警告,因为我们已经长大了,并且可以自己决定哪种查找语法最好;
要打开更多选项,您可以使用--options
或-o
标志:
coffee-jshint -o trailing,browser,sub file1.coffee file2.coffee ...
如果您确实必须关闭某些默认选项,请使用该--default-options-off
标志(您始终可以使用它--options
重新打开某些选项):
coffee-jshint --default-options-off --options undef,eqnull ...
esversion
关于 由于版本的 CoffeeScript 编译器2
将生成 ES6,因此 Coffee->JSHint (从版本开始
1.0.1
)会检测您coffeescript
是否有 semver 版本号>= 2
,在这种情况下,esversion: 6
将设置JSHint选项,如果没有
esversion: 5
。这与--default-options-off
命令行标志无关,目前无法覆盖此行为。
全局变量
您可能会从 Coffee->JSHint 那里收到很多关于未定义的全局变量(如console
、$
、 或 )的抱怨require
。根据您运行代码的位置,您可能希望允许一些全局变量。处理此问题的一种简单方法是使用 JSHint 的内置
环境选项。
例如,如果您使用 Node.js 运行代码,那么您需要打开该node
选项。它像任何其他选项一样工作:
coffee-jshint -o node ...
如果你有一些没有被任何环境覆盖的全局变量,那么你应该在你破坏你自己之前检查你自己。但是如果你真的想关闭某些全局变量的警告,Coffee->JSHint 使用--globals
or-g
选项支持它。一个用例是使用
Mocha,一个测试库:
coffee-jshint -o node --globals describe,it ...
外壳脚本
Coffee->JSHint 可以很好地与您最喜欢的 Unix 实用程序配合使用。如果要递归搜索目录中的所有文件,请尝试在
find
. 这是一个示例,它也过滤掉node_modules/
树下的所有文件:
find . -name node_modules -prune -o -type f -name \*.coffee -print0 | xargs -0 coffee-jshint
Git钩子
要在提交之前使用 Coffee->JSHint 作为 git pre-commit 钩子来检查更改的文件,请将如下内容放入.git/hooks/pre-commit
:
git diff --staged --name-only | xargs coffee-jshint
if [[ $? -ne 0 ]]; then
echo 'WARNING: You are about to commit files with coffee-jshint warnings'
exit 1
fi
这将获取您计划提交更改的所有文件,运行它们coffee-jshint
,1
如果有任何警告(它也会打印出来)并以状态代码退出。如果有警告,提交将被中止,但你总是git commit --no-verify
可以绕过钩子。
贡献
见贡献。
变更日志
请参阅变更日志。