2012-01-27 5 views
114

어디서나이 답변을 찾을 수 없지만 이것이 토론 된 곳에서 여러 메일 링리스트를 찾았습니다. 그러나 이것들은 다소 오래되었지만 이것이 구현되었는지 여부는 알 수 없습니다.노드에 엄격 모드를 강제 적용하는 방법은 무엇입니까?

강제로 node.js에서 엄격 모드 사용을 강제합니까?

내 모든 .js 파일에 "use strict";을 쓰는 중 ... 글쎄, 난 더 엄격한 모드를 사용하는 것이 아니라 별도의 상용구를 추가하는 것이 좋습니다.

답변

171

로이드에 따르면 당신은 지금> = 1996 년 말경에 공개되었던 0.10.7노드에서 파일의 상단에

"use strict"; 

을 배치 할 수 있습니다,하지만 당신이 원하는 경우 전체 응용 프로그램은 외부 모듈을 포함 엄격한 (에서 실행)이

node --use_strict

+0

EEK : fs.js : 1,497 함수 방출() { ^^^^^^^^ 구문 에러 : 엄격 모드 코드에서 기능 만 최상위에 바로 또는 다른 함수 내에서 선언 될 수있다. – 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

또한 use-strict 있습니다입니다

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

가 한 번

require('use-strict') 

를 작성하거나 심지어 앞으로 조치를 취할 사용

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

을 사용할 수 있습니다 의지 호출 후에 필요한 모든 모듈에 엄격한 권한을 부여하십시오. 당신이하지 침략적 접근 방식을 선호하는 경우

, 난 단지 당신의 패키지에 엄격 모드를 가능하게 다른 모듈

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

을 썼다. 나는 그것이 "내가하는 것을 의미한다"해결책이라고 생각한다.

관련 문제