Node.js和eslint不同意;使用“严格的”;
ESLint告诉我,我不需要在index.js文件的顶部使用Node.js和eslint不同意;使用“严格的”;,node.js,strict,eslint,Node.js,Strict,Eslint,ESLint告诉我,我不需要在index.js文件的顶部使用“use strict”(这是一个简单的服务器,就像上面的6行服务器一样)。显然,所有节点模块都已处于严格模式。有道理 但是,运行node index.js会得到一个“SyntaxError:[let]在严格模式之外不受支持。”并使用“redundant”“use strict”pragma运行 为什么不一致?node难道不应该知道这个节点模块在默认情况下确实是严格的吗?这可能是由于对node、ESLint或我的IDE的一些简单的错误配
“use strict”
(这是一个简单的服务器,就像上面的6行服务器一样)。显然,所有节点模块都已处于严格模式。有道理
但是,运行node index.js
会得到一个“SyntaxError:[let]在严格模式之外不受支持。”并使用“redundant”“use strict”
pragma运行
为什么不一致?node难道不应该知道这个节点模块在默认情况下确实是严格的吗?这可能是由于对node、ESLint或我的IDE的一些简单的错误配置造成的吗 ESLint自行决定其认为有效或无效的警告或错误。您必须将eslint/jslint/jshint所说的一切都视为其他一切之上的建议。据某个地方的人说,他们的建议是最优的,完全有效 也就是说,您确实有一些选项来抑制此特定警告:
- 在代码中的注释中使用
标志eslint
- 使用配置运行
,以指定此标志eslint
- 运行
节点时使用
标志--使用strict
得到此警告的具体原因与默认节点解释器未完全准备好ES6这一事实有关。例如,在节点4中,您不能在严格模式之外使用
let
,即使let
是ES6关键字。您可以使用运行节点--use strict
flagslint是“错误的”,但可配置:/*eslint strict:0*/
。就是这样,@ExplosionPills!谢谢为什么不回答这个问题并赢得几分呢?@Amit谢谢Amit。也为我工作!在和处找到此的正式文档。基本上,由于向后兼容性的原因,节点当前需要ES6块作用域特性的严格模式(let
,const
)。在将来的某个时候,let
将不需要--use strict标志。这是暂时的烦恼,这使它更容易忍受。