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


188

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

npm start

지금까지 나는 사용했다 :

node app.js

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

답변:


267

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

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

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

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

"scripts": { "start": "coffee server.coffee"}

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

노드 server.js

 


4
아 알 겠어요 따라서 컴파일 타임에 더 많은 스크립트를 실행하도록 선택하지 않는 한 본질적으로 동일합니다.
ReneGAED

1
일반적으로 "node server.js"를 입력하면 예입니다.
Yusuf X

1
하나의 새로운 앱을 만들었습니다. npm start가 작동하지 않습니다. 오래된 앱의 경우 제대로 실행 중입니다. 어떤 제안?
학습자

1
예를 들어 것이다 "시작 NPM"하면서 ( "노드 ./bin/www"와 같은) package.json 시작 스크립트를 실행하는 것에 따라, 변경 라우터 선택하지 않습니다 "노드는 app.js"
이고르 Vaschuk

1
'npm'으로 시작하면 콘솔에서 'rs'를 입력하여 앱을 다시 시작할 수 있습니다.
Elf

10

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

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

npm-start

패키지 시작

개요

npm start [-- <args>]

기술

패키지의 " start"속성의 " scripts"객체에 지정된 임의의 명령을 실행 합니다 . start" scripts"개체 에 " "속성이 지정되어 있지 않으면 실행 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'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.