[node.js] 노드에서 엄격 모드를 강제하는 방법은 무엇입니까?

이 답변을 어디에서나 찾을 수는 없지만 이것이 논의 된 여러 메일 목록을 찾았지만 다소 오래되었지만 이것이 구현되는지 여부는 알 수 없습니다.

어쨌든 node.js에서 엄격 모드를 강제로 사용해야합니까?

"use strict";내 모든 .js 파일에 쓰기 … 글쎄, 나는 상용구를 추가하는 대신 엄격한 모드를 사용하는 것을 선호합니다.



답변

로이드에 따르면 이제 배치 할 수 있습니다

"use strict";

노드> = 0.10.7 의 파일 맨 위에 있지만 전체 앱을 엄격한 ( 외부 모듈 포함 ) 실행하려면이 작업을 수행 할 수 있습니다

노드 –use_strict


답변

노드 0.10.7에서는 파일 "use strict";맨 위에 배치하여 파일 레벨에서 엄격 모드를 시행 할 수 있습니다 . 드디어!


답변

당신은 또한 사용할 수 있습니다

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

즉, 한 번 쓴다

require('use-strict')

한발 더 나아가서

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

참고 use-strict호출 후 필요한 모든 모듈에 엄격한 더 켜됩니다.

침습적이지 않은 접근 방식을 선호한다면 다른 모듈을 작성했습니다.

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

패키지에서만 엄격 모드를 활성화합니다. 나는 이것이 “무엇을해야합니까”솔루션이라고 생각합니다.


답변

"use strict";해당 파일 상단에서 사용 하십시오. 상용구를 잘라 내고 싶은 유혹이 있지만 자바 스크립트로는 불가능합니다. 명명되지 않은 노드 플래그 [1]

  • 노드 자체에 의해 문서화되지 않고 지원되지 않습니다.
  • 제거 제안에 직면 했습니다.
  • 노드마다 다르며 다른 JavaScript 엔진에서는 지원되지 않습니다.
  • 표준화되지 않았습니다.
  • 그것은 하지 와 같은 "use strict";이 컴파일러 글로벌이기 때문에, 모든 전역 같이 잠재적으로 악영향을 다른 사람의 코드에 영향을 미치는 것입니다.
  • 모든 것은 버그가 있습니다. 엄격 모드와 조잡한 모드에는 다른 버그가있을 수 있습니다. 즉, 일부 엄격 모드 버그는 엄격 모드에 고유합니다.

다른 프로그래머들은 이것이 비슷 -wALL하거나 비슷하다고 생각할 수도 있습니다 . 이것은 표준 방식을 능가하고 모든 사람의 컴파일러 의미를 변경하는 표준 기능입니다.

각주

  1. 노드 플래그는 --use_strict입니다. 사용하지 마십시오 .

답변

shebang 인터프리터 지시문에 엄격한 플래그를 제공 할 수도 있습니다.

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

그러나 현재 (적어도 v0.9.x 이전) @ chad-scira의 답변 토론에 언급 된 것과 동일한 문제가 발생합니다.


답변