NPM / NPX

참고
이미지의 각 파일명을 이 게시물에선 아래와같이 사용함
package.json= 파일1
uuid = 파일2
uuid-bin.js = 파일3
터미널에서 실시한 명령어 = 명령어1
NPM
NodeJs repositories (https://www.npmjs.com/) 에서 관리하는 패키지를 사용하고 관리할수있도록 도와줌
위의 예는 uuid 패키지이다.
이미지 설명
해당 패키지를 npm install uuid로 설치하면 위와 같은 이미지의 파일들이 생기고 아래와 같은 일이 발생한다
그리고 npm uuid
-
node_modules의 .bin폴더 안에 uuid라는 명령어의 심볼릭 링크 파일이 생성된다 (파일1)
-
1번에서 본 파일은 심볼릭 링크 파일이고 사실 「../uuid/dist/bin/uuid」을 가리키고 있고 그 내용이 (파일2) 이다
#!/usr/bin/env node 라는 부분은 CLI가 해당 스크립트를 실행할때 nodejs로 실행하라는 의미이다
├── node_modules │ ├── .DS_Store │ ├── .bin │ │ └── uuid -> ../uuid/dist/bin/uuid -
그리고 결론적으로 파일2의 경로를 타고 들어가면 실행하는 (파일3) 내용이다
-
.bin안에 uuid란 결국 uuid메인 소스코드를 간결하게 실행할수있는 CLI명령어라고 한다(생활코딩 참조했지만.. 아직 이해부족)
-
설치후 uuid 라고 커맨드를 입력하면 동작이 되어야하는데 안됨.. 그래서 일단 해당 .bin폴더에서 node uuid라고 하니 동작함..#!/usr/bin/env node 가 제대로 동작을 안하나..
-
가장 아래에서 typescript를 예시로 추가작성함
NPX
npm의 m이 매니징(관리)의 약자라면 npx의 x는 exec(실행) 의 약자
npm install 없이 바로 다운로드 실행후 삭제한다
npx uuid 를 하면 이미지의 커맨드1 의 결과가 나온다
uuid를 다운 -> 실행 -> 삭제를 해서 결과를 출력함
실행시 매번 다운로드 하기때문에 효율에는 좋지 않고 한번만쓰는 설치 패키지등은 이걸 사용하면 좋다
NPM의 .bin과 커맨드에 관해서
npm i typeScript -g
설치 후 node_modules 폴더의 bin파일에 tsc 파일이 생성되는 것을 볼 수 있다 .
.bin 내부에 있는 파일들은 스크립트에서 경로 없이 파일 이름으로만 바로 실행시킬수 있다.
node_modules/.bin/tsc 파일이름
// 원래는 이렇게
tsc source.ts
// 경로 생략 가능, 뒷부분은 컴파일 할 파일 이름