2012-01-27 13 views
114

No pude encontrar esta respuesta en ningún lado, pero encontré varias listas de correo donde se discutió esto, sin embargo, son bastante antiguas y no tengo idea si esto se implementa o no.¿Hay alguna manera de forzar el modo estricto en el nodo?

¿Hay alguna forma de forzar el uso del modo estricto en node.js?

Escribiendo "use strict"; en todos mis archivos .js ... bueno, prefiero que se vea forzado a usar el modo estricto, en lugar de agregar un texto adicional.

Respuesta

171

Según Lloyd ahora se puede colocar

"use strict"; 

en la parte superior de su archivo en nodo> = 0.10.7, pero si quieres toda la aplicación se ejecute en estricto (incluyendo módulos externos) se puede hacer esto

node --use_strict

+0

Eek: fs.js: 1497 función emiten() { ^^^^^^^^ SyntaxError: En el código modo estricto, funciones sólo se pueden declarar en el nivel superior o inmediatamente dentro de otra función. – j03m

+0

uno de los módulos que está utilizando no está siguiendo las reglas estrictas –

+2

sí, ese era mi punto, está en fs. – j03m

16

también puede proporcionar la bandera estricta sobre la directiva tinglado intérprete.

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

Pero en la actualidad (al menos antes v0.9.x) que sufre los mismos problemas descritos por los comentarios en la respuesta de @ sábalo-SCIRA discutir.

+0

'env' no le permite pasar parámetros como ese, ¿o sí? – Letharion

+0

Funciona para mí, en OSX 10.9.4. –

+1

Sí, sigue ejemplificando una convención forzosamente impuesta, que son dos líneas de código en competencia que tienen que estar en la parte superior de un archivo. – aaaaaa

53

En el nodo 0.10.7 puede aplicar el modo estricto a nivel de archivo colocando "use strict"; en la parte superior de su archivo. ¡Finalmente!

+4

Finalmente :) Lástima que solo puedo marcar una respuesta :( –

23

También puede utilizar

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

, es decir, de una sola escritura

require('use-strict') 

o incluso dar un paso adelante y utilizar

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

Tenga en cuenta que use-strict será active estrictamente más en cada módulo requerido después de la invocación.

Si prefiere un método no invasivo, escribí otro módulo

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

que permite el modo estricto sólo en su paquete. Creo que es más una solución de "Haz lo que quiero decir".

Cuestiones relacionadas