it-source

노드에 엄격한 모드를 적용할 수 있는 방법이 있습니까?

criticalcode 2023. 9. 3. 16:21
반응형

노드에 엄격한 모드를 적용할 수 있는 방법이 있습니까?

이 답변을 어디에서도 찾을 수 없었지만, 저는 이것이 논의된 여러 메일링 목록을 찾았습니다. 하지만 이것들은 꽤 오래된 것들이고 저는 이것이 구현되었는지 아닌지 모르겠습니다.

node.js에서 strict 모드를 사용하여 강제로 적용할 수 있는 방법이 있습니까?

쓰기"use strict";내 모든 .js 파일에서...글쎄요, 저는 보일러 플레이트를 추가하는 것보다 엄격한 모드를 사용하도록 강요받는 것을 선호합니다.

Lloyd에 따르면 이제 당신은 배치할 수 있습니다.

"use strict";

노드 >= 0.10.7에 있는 파일의 맨 위에 있지만, 전체 앱이 엄격하게(외부 모듈 포함) 실행되기를 원한다면 이렇게 할 수 있습니다.

노드 --use_module

노드 0.10.7에서 파일 레벨에서 엄격한 모드를 적용할 수 있습니다."use strict";파일 맨 위에 있습니다.드디어!

그냥 사용하기"use strict";해당 파일의 맨 위에 있습니다.상용판을 오려고 시도하는 것이 유혹적이라는 것을 알지만, 자바스크립트로는 할 수 없습니다.이름을[1] 지정할 수 없는 노드 플래그

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

일부 다른 프로그래머들은 이것이 다음과 비슷하다고 생각할 수 있습니다.-wALL그렇지 않습니다.이것은 표준화된 기능으로, 여러분이 임시방편으로 (표준을 어기고) 활성화하고 모든 사람의 컴파일러 의미론을 변경합니다.

각주

  1. 노드 플래그는--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

패키지에서만 엄격한 모드를 활성화합니다.저는 그것이 "내가 의미하는 것을 하는" 해결책이라고 생각합니다.

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

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

그러나 현재(적어도 v0.9.x 이전) @chad-scira의 답변 토론에서 설명된 것과 동일한 문제를 겪고 있습니다.

ESLint는 기본적으로 엄격한 모드를 적용합니다.그것은 당신이 달리는 것을 막지 못할 것입니다.node물론 엄격한 모드를 준수하지 않는 파일에서 빌드 및 CI 프로세스의 필수 부분으로 ESLint를 사용하는 경우 개발자는 엄격한 모드 코드만 커밋할 수 있습니다.

언급URL : https://stackoverflow.com/questions/9031888/any-way-to-force-strict-mode-in-node

반응형