2017-09-10 5 views
0

내가 내 서버에 JS 파일을 전송하기 전에 다음 명령을 사용 : 내가 서버에 파일을 전달하기 전에 더 심한 오류가 없는지 확인 할 수 있습니다노드가있는 JavaScript 파일을 검사 할 수 있으며 세미콜론이없는 경우 오류가 발생합니까?

node --check <filename>.js 

그 방법을 (이 즉 누락 ')'오류가 발생합니다).

그래도 내가 알아챈 것은 node.js은 줄 끝 부분에 세미콜론을 넣지 않으면 오류가 발생하지 않는다는 것입니다. 커맨드 라인 옵션을 살펴보면 그런 기능을 볼 수 없습니다.

node.js으로 그럴 수 있습니까?

+5

[eslint] (https://eslint.org/docs/developer-guide/nodejs-api)를 사용하고 ['semi : "always"'] (https://eslint.org)를 설정할 수 있습니다./docs/rules/semi) 규칙을 사용합니다. – kamyl

답변

1

내가 주목 한 것은 node.js가 줄 끝 부분에 세미콜론을 넣지 않으면 오류가 발생하지 않는다는 것입니다. 자바 스크립트가 자동 세미콜론 삽입라는 오류 정정 메커니즘을 가지고 있기 때문이다

은 많은 경우에서 누락하는 경우 파서가 당신을 위해 토큰 스트림에 세미콜론을 삽입합니다 (ASI에 대한 자세한위한 this question's 답변을 참조). 따라서 노드 자체는이 정보를 제공하지 않습니다.

대신 ESLint, JSHint 또는 기타 여러 가지 도구 중 하나를 사용하는 것이 좋습니다.

+1

전에 JSHint를 사용했는데 실제로 제대로 작동하지 않았습니다. 방금 ESLint를 시도했습니다. 버그 몇 개를 고칠 수있었습니다! –

0

자바 스크립트에 세미콜론을 넣지 않으면 실제로 오류가 발생하지 않습니다. 나는 두 종류의 개발자 중 일부는 그것을 선호하고 일부 개발자는 그렇지 않은 것을 보았습니다.

나는 위의 대답에 동의하고, 당신은 linters를 사용할 수 있으며 IDEs를 사용하여 매우 부드럽게 실행한다.

코드 줄을 쓰지 않고 결국에는 모든 구문 오류를 수정하여 자신을 수정할 수 있습니다 (분명히 확장되지 않으며 잠시 후 짜증이납니다).

+0

'gvim'을 사용합니다. 예, 알아요. IDE가 없습니다. 번거롭기 때문에 한 번씩 전환해야합니다. 매번 새로운 것을 다시 읽어야하는 것은 귀찮습니다. –