Node.js 和 eslint 不同意 "use strict"
Node.js and eslint disagree on "use strict"
ESLint 告诉我我的 index.js 文件的顶部不需要 "use strict"
(它是一个简单的服务器,就像 https://nodejs.org/en/about/ 上的 6 行服务器一样)。显然所有节点模块都已经处于严格模式。说得通。
但是,运行ning node index.js
让我 "SyntaxError: [let] not supported outside strict mode." 做 运行 "redundant" "use strict"
语用。
为什么不一致?节点不应该知道这个节点模块默认情况下确实是严格的吗?这可能是由于节点、ESLint 或我的 IDE 的一些简单配置错误造成的吗?
ESLint 自行决定什么是有效或无效的警告或错误。您必须将 eslint/jslint/jshint 所说的所有内容视为高于其他所有内容的建议。根据某处某人的说法,他们的建议是最佳且完全有效的。
也就是说,您确实有一些选项可以抑制此特定警告:
- 在代码的注释中使用
eslint
标志
- 运行
eslint
具有指定此标志的配置
- 当运行
node
时使用--use-strict
标志
你收到此警告的具体原因与默认的节点解释器目前还没有完全支持 ES6 的事实有关。例如,在节点 4 中,即使 let
是 ES6 关键字,您也不能在严格模式之外使用 let
。
ESLint 告诉我我的 index.js 文件的顶部不需要 "use strict"
(它是一个简单的服务器,就像 https://nodejs.org/en/about/ 上的 6 行服务器一样)。显然所有节点模块都已经处于严格模式。说得通。
但是,运行ning node index.js
让我 "SyntaxError: [let] not supported outside strict mode." 做 运行 "redundant" "use strict"
语用。
为什么不一致?节点不应该知道这个节点模块默认情况下确实是严格的吗?这可能是由于节点、ESLint 或我的 IDE 的一些简单配置错误造成的吗?
ESLint 自行决定什么是有效或无效的警告或错误。您必须将 eslint/jslint/jshint 所说的所有内容视为高于其他所有内容的建议。根据某处某人的说法,他们的建议是最佳且完全有效的。
也就是说,您确实有一些选项可以抑制此特定警告:
- 在代码的注释中使用
eslint
标志 - 运行
eslint
具有指定此标志的配置 - 当运行
node
时使用
--use-strict
标志
你收到此警告的具体原因与默认的节点解释器目前还没有完全支持 ES6 的事实有关。例如,在节点 4 中,即使 let
是 ES6 关键字,您也不能在严格模式之外使用 let
。