jshint错误:重新定义'_'

时间:2015-08-04 12:15:32

标签: javascript jshint

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

var _ = require('lodash')

jshint抱怨错误:

Redefinition of '_' 

如果删除require语句,应用程序将失败并报告它不会识别'_'。

我的jshint.rc有以下声明:

 "globals": {
    "angular": false,
    "_" : false
  }

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

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

2 个答案:

答案 0 :(得分:4)

您已明确告知jshint全局变量require 只读

来自the docs

  

<强>全局

     

告诉JSHint有关已定义的全局变量的指令   别处。如果value为false(默认值),JSHint会考虑这一点   变量为只读。将它与undef选项一起使用。

     
    

/ * globals MY_LIB:false * /

  

由于您使用_明确定义它,我认为您可以 从JSHint的globals列表中删除_以允许分配给变量。

但是,如果您使用"_" : true而没有明确要求它并期望它出现在环境中,那么您可以在.jshintrc中设置trait Matrix<T> where T : num::Num { fn dim(&self) -> (usize, usize); fn elem(&self, i : usize, j : usize) -> Option<& T>; fn new_const(v: T, rows : usize, cols : usize) -> Self where T : Clone; fn same_dim<U>(&self, other: &U) -> bool where U : Matrix<T> { self.dim() == other.dim() } } 仍然允许分配到它

答案 1 :(得分:2)

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

当你不使用_作为全局变量时,你也应该从jshint中的Globals中删除它。或者将其设置为true,以便jshint不会将其视为只读。

来源:JSLint Error explanation