无法在任何地方找到这个答案,但我确实找到了几个讨论这个问题的邮件列表,但这些列表相当陈旧,我不知道这是否已实现。
无论如何强制在node.js中使用严格模式?
在我的所有.js文件中写"use strict";
......好吧,我更喜欢它被强制使用严格模式,而不是添加额外的样板文件。
答案 0 :(得分:195)
根据劳埃德的说法,你现在可以放置
"use strict";
位于节点> = 0.10.7 的文件顶部,但如果您希望整个应用程序严格运行(包括外部模块),则可以这样做
node --use_strict
答案 1 :(得分:57)
在节点0.10.7中,您可以通过将"use strict";
放在文件顶部来强制执行文件级别的严格模式。终于来了!
答案 2 :(得分:25)
您也可以使用
https://npmjs.org/package/use-strict
即写一次
require('use-strict')
甚至向前迈出一步并使用
https://npmjs.org/package/node-strict
请注意use-strict
将在调用后所需的每个模块上更严格地开启。
如果你更喜欢非侵入性的方法,我写了另一个模块
https://www.npmjs.org/package/strict-mode
仅在您的包中启用严格模式。我认为这更像是“我的意思”解决方案。
答案 3 :(得分:18)
您还可以在shebang解释器指令上提供严格标志。
#!/usr/bin/env node --use_strict
但是目前(至少在v0.9.x之前),它遇到了@ chad-scira的回答讨论中所述的相同问题。
答案 4 :(得分:12)
只需在适用文件的顶部使用"use strict";
。我知道尝试删除样板很诱人,但是用Javascript根本无法做到。节点标志,不应命名为 [1]
"use strict";
不同,因为它是全局编译器,并且像所有全局变量一样,您可能会对其他人的代码产生不利影响。其他一些程序员可能认为这类似于-wALL
之类的,但事实并非如此。这是标准化功能,您可以通过临时方式启用(违反标准)并更改每个人的编译器语义。
--use_strict
。 请勿使用。答案 5 :(得分:1)
值得注意的是,ESLint 默认强制执行严格模式。当然,它不会阻止您在不遵守严格模式的文件上运行 node
,但是如果您将 ESLint 作为构建和 CI 过程的必需部分,那么开发人员将只能提交严格模式代码。