9

ESLint 告诉我我不需要"use strict"在 index.js 文件的顶部(它是一个简单的服务器,如https://nodejs.org/en/about/上的 6 行服务器)。显然所有节点模块都已经处于严格模式。说得通。

但是,运行node index.js给我一个“SyntaxError: [let] not supported outside strict mode”。确实使用“冗余”"use strict"编译指示运行。

为什么不一致?node 不应该知道这个 node 模块默认情况下确实是严格的吗?这可能是由于节点、ESLint 或我的 IDE 的一些简单配置错误造成的吗?

4

1 回答 1

10

ESLint 自己决定什么是有效或无效的警告或错误。您必须将 eslint/jslint/jshint 所说的一切都视为其他一切之上的建议。根据某个地方的某个人的说法,他们的建议是最佳且完全有效的。

话虽如此,您确实有一些选项可以抑制此特定警告:

  • 在代码的注释中使用eslint标志
  • 使用配置运行eslint以指定此标志
  • 运行时使用--use-strict标志node

您收到此警告的具体原因与默认节点解释器目前尚未完全支持 ES6 的事实有关。例如,在节点 4 中let,即使let是 ES6 关键字,您也不能在严格模式之外使用。

于 2015-09-26T05:19:12.600 回答