如何禁用警告“定义”未使用 JSHint 和 RequireJS 定义
Posted
技术标签:
【中文标题】如何禁用警告“定义”未使用 JSHint 和 RequireJS 定义【英文标题】:How to disable the warning 'define' is not defined using JSHint and RequireJS 【发布时间】:2013-04-22 01:33:01 【问题描述】:我在我的项目中使用 RequireJS AMD。当我在我的项目上运行 jshint 时,它会抛出类似的错误
在 AMD 脚本中
'define' is not defined.
在 Mocha 测试用例中
'describe' is not defined.
'it' is not defined.
如何在 jshint 中移除这个警告?
【问题讨论】:
【参考方案1】:只是为了扩展一点,这里是 Mocha 的 .jshintrc
设置:
....
"globals" :
/* MOCHA */
"describe" : false,
"it" : false,
"before" : false,
"beforeEach" : false,
"after" : false,
"afterEach" : false
来自JSHint Docs - false(默认值)表示该变量是只读的。
如果您只为特定文件定义全局变量,您可以这样做:
/*global describe, it, before, beforeEach, after, afterEach */
【讨论】:
我们可以使用"mocha": true
2.5.1+ github.com/jshint/jshint/issues/1330
@bendytree 你知道我是否可以为一些非全局文件/文件夹添加这些规则吗?
@Gobliins Bohdan 上面的评论。将该行添加为 mocha 测试文件的第一行,它将仅对该文件强制执行规则【参考方案2】:
jshint:
options:
mocha: true,
是你想要的
【讨论】:
【参考方案3】:为避免在 jshint 中为 javascript 添加 cmets 的未定义警告,如:
/*global describe:true*/
Options
【讨论】:
【参考方案4】:在你的 .jshintrc 中添加这个
"predef" : ["define"] // Custom globals for requirejs
【讨论】:
predef 已弃用,请使用全局变量 @JonathanAzulay 我在jshint.com/docs/options/#predef 没有找到任何弃用说明。我认为 Global 可用于自定义全局 JavaScript,例如 angular、$、jQuery 等,predef 可用于隐式全局对象,如窗口、文档、控制台等【参考方案5】:派对迟到了,但请在您的 jshintrc
中使用此选项:
"dojo": true
你将安息,没有红色警告......
【讨论】:
【参考方案6】:如果您正在使用节点 js。在文件开头添加这两行
/*jslint node: true */
"use strict";
【讨论】:
这个问题是关于JSHint的。【参考方案7】:Read the docs 并搜索 /*global
【讨论】:
来自JSHint GitHub example:"unused" : true, // true: Require all defined variables be used
这不是一回事。【参考方案8】:
如果您像我一样尝试在 WebStorm 中使用 Mocha 运行 JSHint,请进入:
WebStorm > 首选项 > 语言和框架 > JavaScript > 代码质量工具 > JSHint
向下滚动到“环境”并确保您已选中复选框以启用“Mocha”,这将为您设置 JSHint for Mocha 的定义。
【讨论】:
以上是关于如何禁用警告“定义”未使用 JSHint 和 RequireJS 定义的主要内容,如果未能解决你的问题,请参考以下文章
使用 webpack 和 jshint-loader 时如何摆脱 use-strict 警告?
如何在 Delphi 中禁用关于“返回值......可能未定义”的警告?