2012-01-27 29 views
114

到處都找不到這個答案,但我沒有找到這個地方討論了幾個郵件列表,這些都是比較舊但我不知道如果這是實現與否。任何方式強制節點嚴格模式?

反正在node.js中使用嚴格模式給力?

寫在我所有的.js文件...好,我喜歡它被迫使用嚴格模式,而不是增加額外的樣板"use strict";

回答

171

根據勞埃德你現在可以把

"use strict"; 

在你的文件的頂部節點> = 0.10.7,但如果你想你的整個應用嚴格(包括外部模塊運行),你可以做到這一點

node --use_strict

+0

伊克:fs.js:1497 功能發射(){ ^^^^^^^^ 語法錯誤:在嚴格模式代碼,功能只能在頂層或立即內的另一功能聲明。 – j03m 2013-01-17 19:53:19

+0

你使用的模塊之一是不遵循嚴格的規則 – 2013-01-18 19:30:01

+2

是我的觀點,這是在FS。 – j03m 2013-01-18 21:28:39

16

還可以提供關於家當解釋指令嚴格標誌。

#!/usr/bin/env node --use_strict 

,但目前(至少前v0.9.x)遭罪在評論中@乍得 - scira的回答討論中描述的同樣的問題。

+0

'env'不允許你傳遞這樣的參數,是嗎? – Letharion 2014-09-17 07:54:38

+0

適用於我,OSX 10.9.4。 – 2014-09-18 12:55:04

+1

是的 - 仍然是一個可怕的強制約定,即兩個競爭的代碼行必須在文件的頂部。 – aaaaaa 2015-01-25 04:58:07

53

在節點0.10.7可以通過將"use strict";在你的文件的頂部強制在文件級嚴格模式。最後!

+4

最後:)太糟糕了,我只能標記一個答案:( – 2013-05-19 11:33:12

23

您還可以使用

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

即,一次寫入

require('use-strict') 

甚至向前邁出一步,並使用

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

請注意,use-strict將在調用之後,對每個需要的模塊進行更嚴格的打開。

如果你喜歡一個沒有侵入性的方法,我寫了另一個模塊

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

這使得嚴格的模式只在你的包。我認爲這更像是一個「做我的意思」的解決方案。