티스토리 뷰

node_modules 디렉토리에는 .bin 폴더가 있다.
.bin은 이름에서 알 수 있듯이 binary 파일들이 저장되는 곳이다.
그리고 리액트를 사용하면서 package.json에 작성하는 npm script와 깊은 연관이 있다.

 

🔸 모듈을 설치하고 실행시키는 방법

먼저, npm으로 모듈을 설치할 때 글로벌 옵션 -g 을 사용하면 터미널에서 바로 실행할 수 있다.
그러나 글로벌로 설치하지 않고 로컬로 설치할 때는 터미널에 

nodemon ./src/index.js // 실행할 수 없다

를 사용할 수 없다. 운영체제 환경변수에 등록되지 않아 nodemon 파일이 어느 경로에 위치해있는지 모르기 때문이다.

 

이 때 이 nodemon 모듈을 실행할 수 있는 방법은 2가지가 있다.
node를 사용하는 방법과 npm을 사용하는 방법.

 

1. node를 사용하는 방법

node node_modules/nodemon/bin/nodemon.js ./src/index.js // 예시

위처럼 파일 경로를 알려주며 자바스크립트 파일을 node로 직접 실행시킬 수 있고,

2. npm을 사용하는 방법

// package.json
	"script": {
		"dev": "nodemon ./src/index.js"
	  }

// terminal
npm run dev

위처럼 npm script를 통해서 실행시킬 수 있다.
이 때 npm을 통해서 실행시킬 수 있는 이유가, .bin 폴더에 nodemon을 실행시킬 수 있는 binary 파일이 있기 때문이다.

 

🔸 결론

어떤 라이브러리를 사용하고자 할 때 공식 문서에서 package.json에 npm, yarn, pnpm 등 사용하는 패키지 매니저별로 script 명령어를 알려준다.
이것은 그 라이브러리 파일을 어떻게 실행시킬지 내부적으로 구현되어 있고, 패키지 매니저를 통해 실행시킬 수 있는 방법을 알려주는 것이다.
패키지 매니저를 사용하지 않는다면 자바스크립트 파일을, 자바스크립트 런타임인 nodejs 환경에서 실행시키기 위해 node 명령어를 써야 할텐데, 이 때 파일 경로를 지정해주어야 한다. 글로벌로 설치하지 않으면 운영체제에 환경변수로 등록되지 않아 매번 패키지가 설치되어 있는 경로를 지정해주며 파일 이름과 함께 일일이 실행시켜주어야 할 것이다.


한편, npm을 사용하는 경우, npm install 모듈 명령어를 실행하면
node_modules 파일의 .bin 폴더에 해당 모듈의 binary 파일이 생성되고, npm이 node 대신 그 폴더의 binary 코드를 실행시키면서 간편하게 프로그램을 실행시킬 수 있다. 마치 글로벌로 설치하고 터미널에 nodemon 명령어로 실행하는 것과 같이.

 

더보기

라이브러리와 패키지
코드의 묶음을 라이브러리라고 부른다면,
패키지는 코드의 배포를 위해 사용되는 코드의 묶음이다. 실행 파일을 포함한다.

 

반응형
댓글