리액트 프로젝트를 클론한 후 로컬에서 실행하려고 npm start
명령어를 입력하면서 문득 npm start
와 npm run start
명령어가 같은 의미인지 궁금해졌다.
자바스크립트 프로젝트에서 개발을 하다 보면, 로컬 서버 실행, 테스트, 빌드 등 반복 작업을 위해 터미널에서 명령어를 자주 입력하게 된다. 이런 작업들을 스크립트로 등록해 두면 훨씬 편리하다.
이번 글에서는 npm start
와 npm run start
의 차이를 살펴보고, 자주 사용하는 반복 작업을 어떻게 스크립트로 등록하고 실행하는지도 함께 정리해 보자.
🤔 npm start vs npm run start
결론부터 말하면 npm start
는 npm run start
의 축약형이다. npm start
는 package.json 파일의 scripts
항목 중 "start"에 정의된 명령어를 실행한다. npm run start
도 동일한 방식으로 동작한다.
⚠️ "start"는 특별한 예약어라 npm run
을 생략할 수 있지만, "build"
, "test"
, "dev"
등 다른 스크립트는 반드시 npm run <스크립트명>
형태로 실행해야 한다.
🛠️ 스크립트를 등록하는 이유
리액트 프로젝트뿐 아니라 대부분의 프런트엔드/백엔드 자바스크립트 프로젝트는 다양한 CLI 명령어를 사용한다.
- 테스트:
jest
,vitest
,mocha
등 - 빌드:
webpack
,vite
,parcel
등 - 린트:
eslint
- 포맷팅:
prettier
이 명령어들을 매번 정확하게 기억하는 것은 어렵기 때문에, 반복적으로 수행하는 동작에 대해 package.json에 스크립트로 등록해 두면 간단한 명령어로 편리하게 사용할 수 있다.
🗂️ 스크립트 등록 방법
Node.js 프로젝트의 package.json에 scripts
항목이 있는데, 해당 부분에서 직접 편집하거나 명령어를 입력하여 등록하는 방법이 있다.
package.json
을 열고 직접 편집npm pkg set scripts.{스크립트 이름}={명령어}
명령어 입력
$ npm pkg set scripts.hi "echo 'HI!'"
file : package.json
{
// 생략
"scripts": {
"hi": "echo 'Hi!'"
"start": "react-scripts start"
},
// 생략
}
🧠 스크립트 실행 방법
스크립트 등록을 마치면 npm run <스크립트 이름>
명령어를 입력하여 실행할 수 있다.
$ npm run hi
> our-project@1.0.0 hi
> echo 'Hi!'
Hi!
npm start
도 이 방식으로 동작하는 것이며, 단지 "start"만 예외적으로 run
생략이 가능하다.
🧩 보너스: 자주 쓰는 스크립트 예시
package.json 파일에 다음과 같이 등록해 두면 터미널에서 짧은 명령으로 실행할 수 있어 편리하다.
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"lint": "eslint .",
"format": "prettier --write ."
}
$ npm start # 개발 서버 실행
$ npm run build # 빌드
$ npm run test # 테스트
$ npm run lint # 린트
$ npm run format # 코드 포맷팅
'JavaScript' 카테고리의 다른 글
상대경로와 절대경로 표기법 (0) | 2025.08.20 |
---|---|
express, nodemon 설치 및 사용하기 (4) | 2025.07.29 |
Node.js 모듈 시스템 이해하기 – require()와 import 비교 (1) | 2025.07.28 |
🔖 자바스크립트 자료형과 형 변환 - 한 입 크기로 잘라먹는 리액트 1장을 읽고 (2) | 2025.05.06 |
🔖 자바스크립트 변수와 상수 - 한 입 크기로 잘라먹는 리액트 1장을 읽고 (1) | 2025.05.01 |