jshint错误:重新定义'_'

run*_*ero 5 javascript jshint

我在我的快递应用程序中使用lodash库.每当我把lodash包括在内:

var _ = require('lodash')
Run Code Online (Sandbox Code Playgroud)

jshint抱怨错误:

Redefinition of '_' 
Run Code Online (Sandbox Code Playgroud)

如果我删除了require语句,则应用程序将失败并报告它不会识别"_".

我的jshint.rc有以下声明:

 "globals": {
    "angular": false,
    "_" : false
  }
Run Code Online (Sandbox Code Playgroud)

但这样我就可以将它包含在前端代码中,而不会抱怨jshint.

如何让jshint忽略我的节点代码中的这个错误?

mus*_*_ut 5

您已明确告诉 jshint 全局变量_只读的

来自文档

全局变量

用于告诉 JSHint 有关在其他地方定义的全局变量的指令。如果值为 false(默认),JSHint 会将该变量视为只读。它与 undef 选项一起使用。

/* 全局变量 MY_LIB: false */

由于您正在使用require显式定义它,我认为您可以_globalsJSHint 列表中删除以允许分配给变量。

但是,如果您_在没有明确要求的情况下使用它并期望它出现在环境中,那么您可以"_" : true在您的中设置.jshintrc为仍然允许对其进行分配。


pke*_*ers 3

在 jshint.rc 中,您可以放置​​:"no-native-reassign" : 0,这将禁用本机重新分配规则,或者您可以将 /*jshint -W079 */ 放在您分配 _ 的函数之前。

当您不使用 _ 作为全局变量时,您还应该将其从 jshint 中的全局变量中删除。或者将其设置为 true,这样 jshint 就不会将其视为只读。

来源:JSLint 错误解释