56

我正在为 Node.js 编写一些代码,目前正在使用 JSHint 检查我的代码。但是,当我使用该require函数导入模块时,它会说:

“要求”未定义。

如何抑制警告?

"use strict";
var express = require('express');   
var register = require('./routes/register');
4

4 回答 4

89

默认情况下,jshint 不知道 node.js 全局变量,您需要通知它。

将此评论添加到顶部:

/* jshint node: true */

于 2013-04-09T05:52:02.403 回答
63

我们可以在 JSHint 的文件中设置node为全局环境变量.jshintrc

此选项定义当您的代码在 Node 运行时环境中运行时可用的全局变量。Node.js 是一个使用异步事件驱动模型的服务器端 JavaScript 环境。此选项还会跳过一些在浏览器环境中有意义但在 Node 中没有意义的警告,例如文件级 use strict pragma 和 console.log 语句。

欲了解更多信息http://jshint.com/docs/options/#node

{
   "node": true
}

'require' is not defined, 'console' is not defined,之类的错误'module' is not defined不会再出现

于 2015-11-19T14:13:10.153 回答
7

您可以通过在文件中添加“require”来配置 JSHint .jshintrc。例如:

{
    "globals" : {
        "require": false
    }
}

或者您只能通过以下方式为每个特定文件定义全局变量:

/* global require */

有关如何配置 JSHint 的更多信息,请阅读JSHint 文档

于 2014-03-20T03:16:09.437 回答
2

我偶然发现了这个答案,并且无法在 VSCode 中使用任何东西。我得到了这个工作:

  1. Preferences: Open Settings (JSON)通过命令面板窗口 (Ctrl-Shift-P)打开 JSON 设置文件。
  2. 将此部分添加到settings.json文件中:

    { "jshint.options": { "esversion": 8, // This gets rid of some other warnings "node": true } }

于 2020-02-24T15:39:32.943 回答