컴퓨터와 책과 연필

npm run dev 이게 뭐냐

2025. 6. 24. Kaum Kiridjohm이가 씀.

1. 의문

Node.js 프로젝트 만들고 실행할 때 터미널에 이걸 입력한다. 그럼 실행되는데 뭐가 어떻게 되는지 모르겠다.

2. npm - scripts

package.json 파일의 scripts 부분에 명령어를 정의할 수 있다.

미리 정해진 스크립트(수명주기이벤트)들이 있다. 예를 들어 install이 있다. package.json에서 install 스크립트를 정의하면 npm install 실행시 그 명령어가 실행된다.

정해진 스크립트들 외에 원하는 이름으로 사용자 스크립트를 정의할 수 있는데; dev라는 스크립트도 그런 거다. 사용자 스크립트인 경우에는 npm run <스크립트이름> 이렇게 실행시킨다.

// package.json
{
  "name": "myfrontend",
  ...
  "scripts": {
    "dev": "vite",
    ...
  },
  ...
}

위의 예에서 scripts 하위에 "dev": "vite"가 있다. 그래서 npm run dev를 실행할 수 있으며; 결과로 vite가 실행된다.

다만 그렇다고 터미널에 직접 vite를 치면 실행이 안 되는데 이유가 있다. vite가 실행되는 환경은 npm run dev을 실행한 터미널과 같은 실행 환경이 아니다.

  • npm을 호출한 터미널의 현재 작업 디렉토리와 무관; 프로젝트의 루트 폴더에서 실행된다.
  • npm install을 통해 설치한 의존성 모듈은 node_modules/.bin/에 실행파일을 가지기도 하는데; npm run 명령으로 그 파일을 실행할 수 있다.

내 프로젝트에서는 node_modules/.bin/vite 파일의 존재가 확인된다. 그래서 이 파일이 실행되는 거다. 그러니까 프로젝트 루트 폴더에서 ./node_modules/.bin/vite라고 입력해서 그 파일을 실행하면 npm run dev를 실행했을 때와 똑같이 실행된다.

3. 참고

참고: npm Docs - scripts

728x90