2012-01-27 2 views
114

Не удалось найти этот ответ в любом месте, но я нашел несколько списков рассылки, где это обсуждалось, но они довольно старые, и я понятия не имею, реализовано это или нет.Любой способ заставить строгий режим в узле?

Есть ли способ принудительного использования строгого режима в node.js?

Письмо "use strict"; во все мои .js файлы ... ну, я предпочитаю, чтобы он был вынужден использовать строгий режим, вместо добавления дополнительного шаблона.

ответ

171

По словам Ллойда вы можете разместить

"use strict"; 

в верхней части файла в узле> = 0.10.7, но если вы хотите, все ваше приложение для запуска в строгом (включая внешние модули), вы можете сделать это

node --use_strict

+0

Ик: fs.js: функция одна тысяча четыреста девяносто-семь испускают() { ^^^^^^^^ SyntaxError: В строгом режиме кода, функции могут быть объявлены только на верхнем уровне или непосредственно внутри другой функции. – j03m

+0

Один из модулей, которые вы используете, не соответствует строгим правилам –

+2

Да, это была своего рода точка зрения, она находится в fs. – j03m

16

вы можете также обеспечить строгий флаг на директивы притон интерпретатора.

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

Но в настоящее время (по крайней мере, до v0.9.x) она страдает теми же проблемами, описанными комментариями в ответ @ Чадом scira обсуждают.

+0

'env' не позволяет вам передавать такие параметры, не так ли? – Letharion

+0

Работает для меня, на OSX 10.9.4. –

+1

Да - все еще иллюстрирует ужасное принудительное соглашение, являющееся двумя конкурирующими строками кода, которые должны быть в верхней части файла. – aaaaaa

53

В узле 0.10.7 вы можете принудительно ввести строгий режим на уровне файла, разместив "use strict"; в верхней части файла. В заключение!

+4

Наконец :) Слишком плохо могу отметить только один ответ :( –

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

, которая позволяет строгий режим только в пакете. Я думаю, что это скорее решение «Делайте то, что я имею в виду».

Смежные вопросы