티스토리 뷰
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 명령어로 실행하는 것과 같이.
라이브러리와 패키지
코드의 묶음을 라이브러리라고 부른다면,
패키지는 코드의 배포를 위해 사용되는 코드의 묶음이다. 실행 파일을 포함한다.
'개발 > JS, TS, React' 카테고리의 다른 글
React에서 url을 다루는 방법들 (0) | 2023.06.03 |
---|---|
TypeScript 열거형, 인터페이스, 타입별칭, 타입추론, 클래스 (0) | 2023.05.31 |
TypeScript 프로젝트 환경 구성, 타입 종류 (0) | 2023.05.30 |
React useRef 사용하기 with TypeScript (0) | 2023.05.26 |
React useSelector와 useState를 함께 사용할 때 (0) | 2023.05.23 |
- Total
- Today
- Yesterday
- 을지로맛집
- 티스토리검색
- 깃허브 데스크탑 로그아웃
- 롯데월드 보조배터리
- 신불당 술집
- 구글서치콘솔
- 춘천닭갈비
- 태릉맛집
- 티스토리
- 맥 깃허브 데스크탑
- 롯데월드 키오스크
- 태릉 술집
- 공릉 밀크티
- 홍천 삼겹살
- 태릉삼겹살
- 태릉 꼬치
- Til
- sitemap
- 공릉 술집
- 공릉 이자카야
- 회고
- 공릉 카페
- 공릉맛집
- 이수 맛집
- 롯데월드 매직패스 프리미엄
- solo project
- 공릉 꼬치
- 춘천맛집
- 태릉 이자카야
- 공릉 맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |