Aucun moyen de forcer le mode strict du nœud?
Ne pouvait pas trouver cette réponse n'importe où, mais je n'ai trouver plusieurs listes de diffusion où cela a été discuté, ce sont plutôt vieux, cependant, et je n'ai aucune idée si cela est mis en œuvre ou pas.
Est-il de toute façon à force d'utiliser le mode strict dans node.js?
Écrit "use strict";
dans tous mes .fichiers js... eh bien, je préfère qu'il soit forcé d'utiliser le mode strict, plutôt que d'ajouter du texte standard.
- Si vous obtenez une chance, je pense que vous devriez sérieusement envisager de marquage de cette réponse (le mien) comme acceptée, parce que ce n'est pas sûr que c'est dangereux: stackoverflow.com/a/51970329/124486
Vous devez vous connecter pour publier un commentaire.
Selon Lloyd vous pouvez maintenant placer
en haut de votre fichier dans nœud >= 0.10.7, mais si vous voulez que votre ensemble de l'application à exécuter dans le plus strict (y compris des modules externes) vous pouvez le faire
--use_strict
indicateur fonctionne comme prévu.--use_strict
j'ai euReferenceError: global is not defined
dansnode.js
lui-même--use_strict
va définir le mode strict pour l'ensemble de l'application, inclure tous les exteneral modules, qui sont hors de votre contrôle.Nœud 0.10.7 vous pouvez appliquer le mode strict au niveau des fichiers en les plaçant
"use strict";
en haut de votre fichier. Enfin!!!Vous pouvez également utiliser
https://npmjs.org/package/use-strict
qui est, écrire une fois
ou même de prendre un pas en avant et utiliser
https://npmjs.org/package/node-strict
Veuillez noter que
use-strict
s'allume plus stricte sur chaque module requis après l'invocation.Si vous préférez un non-invasif, j'ai écrit un autre module
https://www.npmjs.org/package/strict-mode
qui permet le mode strict que dans votre colis. Je pense que c'est plus un "Fais Ce que je veux Dire" solution.
Vous pouvez également fournir le strict drapeau sur le shebang interprète la directive.
Mais à l'heure actuelle (au moins, avant v0.9.x), souffre des mêmes problèmes décrits par les commentaires de @tchad-scira la réponse de discuter.
env
ne vous permet pas de passer des paramètres comme ça, n'est ce pas?env
permettra de travailler avec des paramètres supplémentaires comme que sur OSX, mais pas sur Linux.Suffit d'utiliser
"use strict";
en haut de dossiers concernés. Je sais que c'est tentant d'essayer de couper standard, mais il ne peut tout simplement pas être fait en Javascript. Le nœud du pavillon qui ne doit pas être nommé[1]"use strict";
parce que c'est un compilateur mondiale, et comme tous les globals vous êtes potentiellement nuire à quelqu'un d'autre code.Certains autres programmeurs peuvent penser que c'est similaire à
-wALL
ou similaire, il n'est pas. C'est normalisée des fonctionnalités que vous êtes en permettant une ad-hoc (rupture de la norme) et l'évolution de chacun compilateur sémantique.Notes de bas de page
--use_strict
. Ne l'utilisez pas.