[node.js] 앱을 시작할 때 npm start와 node app.js의 차이점은 무엇입니까?

명령을 사용하여 응용 프로그램을 설치했습니다 express new 'filename'. 방금 다음을 사용하여 응용 프로그램을 시작할 수 있다는 것을 배웠습니다.

npm start

지금까지 나는 사용했다 :

node app.js

내 서버를 시작합니다. 둘 사이의 차이점이 무엇인지 아는 사람이 있습니까? 감사.



답변

로부터 man 페이지 , 시작 NPM :

패키지의 “시작”스크립트 (제공된 경우)를 실행합니다. 버전을 지정하지 않으면 “활성”버전이 시작됩니다.

분명히 그 설명은 완전히 도움이되지 않으며 그것이 전부입니다. 적어도 socket.io보다 더 문서화되어 있습니다.

어쨌든, 실제로 일어나는 일은 npm이 package.json 파일 에서 보이는 것입니다.

“scripts”: { “start”: “coffee server.coffee”}

그렇게 할 것입니다. npm에서 시작 스크립트를 찾을 수없는 경우 기본값은 다음과 같습니다.

노드 server.js

 


답변

문서가 업데이트되었습니다 . 내 대답은 받아 들인 대답과 실질적인 변화가 있습니다. 문서가 최신 상태임을 반영하고 싶었고 수락 된 대답에는 깨진 링크가 몇 개 있습니다.

또한 수락 된 답변이 “기본값”으로 표시되는 시점을 이해하지 못했습니다 node server.js. 설명서에서 기본 동작을 설명한다고 생각합니다.

npm-start

패키지 시작

개요

npm start [-- <args>]

기술

패키지의 ” start“속성의 ” scripts“객체에 지정된 임의의 명령을 실행 합니다 . startscripts“개체 에 ” “속성이 지정되어 있지 않으면 실행 node server.js됩니다.

요약하면 running npm start은 다음 두 가지 중 하나를 수행 할 수 있습니다.

  1. npm start {command_name}: 임의의 명령을 실행합니다 (예 : startpackage.json scripts객체 의 속성 에 해당 명령이 지정된 경우 ).
  2. npm start: 그렇지 않으면 start속성이 없거나 command_name전달 되지 않은 경우 : Run node server.js, ( 예를 들어 OP에없는 , OP가 실행 하는 등 적절 하지 않을 수 있음 )server.jsnodeapp.js
  3. 나는 두 가지 항목 만 나열한다고 말했지만 다른 가능성 (예 : 오류 사례)입니다. 예를 들어, package.json실행중인 디렉토리에 없으면 npm start오류가 표시 될 수 있습니다.npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'

답변