npm run dev 이게 뭐냐
주소: /entry/npm-run-dev
의문
Node.js 프로젝트 만들고 실행할 때 터미널에 이걸 입력한다. 그럼 실행되는데 뭐가 어떻게 되는지 모르겠다.
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를 실행했을 때와 똑같이 실행된다.
참고
728x90