有什么方法可以强制节点中的严格模式?

Rob*_*sen 136 node.js

无法在任何地方找到这个答案,但我确实找到了几个讨论这个问题的邮件列表,但这些列表相当陈旧,我不知道是否实现了这个.

无论如何强制在node.js中使用严格模式?

"use strict";在我所有的.js文件...好,我喜欢它被迫使用严格模式,而不是增加额外的样板.

Cha*_*ira 201

根据劳埃德的说法,你现在可以放置

"use strict";
Run Code Online (Sandbox Code Playgroud)

节点> = 0.10.7的文件顶部,但如果您希望整个应用程序在严格(包括外部模块)中运行,您可以执行此操作

节点--use_strict

  • 请注意,`--use_strict`将严格模式设置为整个应用程序,包括所有超出控件的外部模块. (19认同)
  • 在节点v0.9.x和更新版本中,`--use_strict`标志按预期工作. (13认同)
  • 是的,这是我的观点,它是在fs. (2认同)

Llo*_*oyd 57

在节点0.10.7中,您可以通过放置"use strict";在文件顶部来强制执行文件级别的严格模式.最后!

  • 最后:)太糟糕我只能标记一个答案:( (4认同)

Gia*_*ati 25

你也可以使用

https://npmjs.org/package/use-strict

也就是说,写一次

require('use-strict')
Run Code Online (Sandbox Code Playgroud)

甚至向前迈出一步并使用

https://npmjs.org/package/node-strict

请注意,use-strict调用后所需的每个模块都会严格打开.

如果你更喜欢非侵入性的方法,我写了另一个模块

https://www.npmjs.org/package/strict-mode

它只在你的包中启用严格模式.我认为这更像是"我的意思"解决方案.


Joh*_*ann 18

您还可以在shebang解释器指令上提供严格标志.

#!/usr/bin/env node --use_strict
Run Code Online (Sandbox Code Playgroud)

但目前(至少在v0.9.x之前),它遇到了@ chad-scira的回答讨论中所述的相同问题.

  • 请注意,`env`将使用OSX上的额外参数,但不能在Linux上使用. (7认同)

Eva*_*oll 15

只需"use strict";在适用文件的顶部使用即可.我知道尝试削减样板是很诱人的,但它根本无法在Javascript中完成.不应命名的节点标志[1]

  • 没有文档,Node本身也不支持.
  • 已经面临删除它的建议.
  • 是特定于节点的,并且在任何其他JavaScript引擎中都不受支持.
  • 是不规范的.
  • 不是一样的,"use strict";因为它是一个编译器全局,并且像所有全局变量一样,你可能会对其他人的代码产生负面影响.
  • 一切都受到错误的影响.严格模式和草率模式可能会受到不同的错误.也就是说,一些严格的模式错误是严格模式所特有的

其他一些程序员可能认为这类似于-wALL或类似,但事实并非如此.这是标准化的功能,您可以以临时方式启用(打破标准)并更改每个人的编译器语义.

脚注

  1. 节点标志是--use_strict.不要使用它.