본문 바로가기
TIL

[TIL] npx, next lint 명령어, package.json과 package-lock.json의 차이

by Lizzie Oh 2025. 1. 15.

npx

npx create-next-app@latest 로 next application 을 생성할 수 있다. 문득 npx 는 무엇인지 궁금해서 간단히 찾아보았다.

 

npx는 Node.js와 함께 제공되는 패키지 실행 도구로, npm v5.2.0 이상에서 기본적으로 포함되어 있다. Node 패키지 관리자인 npm과 함께 사용되며, 로컬에 설치되지 않은 패키지나 CLI(Command Line Interface) 명령어를 별도 설치 없이 실행할 수 있다. 

 

그래서 어떤 프로젝트에서 next가 설치되지 않은 상황에서도 npx create-next-app@latest 를 실행하여 next js 어플리케이션이 실행될 수 있는 것이다.  npx create-next-app@latest 가 실행되면 npx는 create-next-app 패키지가 설치되어있지 않다면 자동으로 다운로드하여 실행한다. (먼저 로컬 노드 모듈에서 실행 가능한 패키지를 확인하고 없으면 전역 패키지를 검색. 로컬/전역 모두 없으면 자동으로 최신 버전의 패키지를 다운로드하여 실행)

 

 

next lint

package.json 파일을 보다가 script 값에 next lint 라는 명령어가 있는 것을 발견했다. 

"lint": "next lint",

 

개발하면서 한번도 사용해보지 않은 명령어라 궁금해서 찾아보았다. Next.js 프로젝트에서 코드 품질을 확인하기 위해 ESLint를 실행하는 명령어라고 하고, 실행하면 코드 내 문제점을 분석하고 개선사항을 제안한다고 한다. 가장 자주 쓰는 레포에서 실행해보았다. 많이보던 lint 경고들이 나온다. build 할때 늘 봤던 것 같은데, 이렇게 lint만 돌릴 수도 있군! 

 

package-lock.json

package.json은 개발할때 늘 자주 보지만, 자동으로 업데이트되는 package-lock.json 은 직접 확인할일이 없다보니 어떤 역할을 하는지 제대로 알지 못하고 있는 것 같아서 조금 공부해보았다.

 

package-lock.json 파일은 프로젝트의 의존성 트리를 정확히 기록해서 동일한 환경을 재현할 수 있도록 보장해주는 파일이다. 이를 위해서 의존성 트리에 있는 모든 패키지의 정확한 버전 정보와 서브 의존성(하위 의존성), 패키지의 출처(URL)와 무결성을 확인하는 SHA 해시를 포함한다. 

 

yarn install이나 npm install을 실행하는 경우 package-lock.json 파일 내용을 기준으로 패키지를 설치하기 때문에 동일한 package-lock.json 파일을 사용하면, 다른 환경에서도 완전히 동일한 패키지 버전이 설치된다. 또한 파일 내용은 패키지 매니저에 의해 자동으로 생성, 관리된다.


 

반응형

댓글