如何禁用警告“定义”未使用 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 定义的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Atom 中为 jshint 禁用“使用严格”

使用 webpack 和 jshint-loader 时如何摆脱 use-strict 警告?

防止 JSHint 警告“功能名称已定义但从未使用”

如何在 Delphi 中禁用关于“返回值......可能未定义”的警告?

如何忽略 '$' 未定义 JsHint 错误。 (Visual Studio 2010 JsHint 扩展)

JSHint:关闭缺少分号警告