본문 바로가기

node, npm

npm, npx

1. npm

$ npm install <package-name>

npm으로 패키지를 설치할 때, 전역 설치 옵션(-g)을 지정하지 않으면 기본적으로 로컬에 설치된다.

 

1) 로컬설치 

해당 디렉토리의 ./node_modules/.bin/ 경로에 설치된다.

 

2) 전역설치

/usr/local/bin 와 같이 전역 bin 에 npm 설치된다.

 

로컬로 설치할 경우 아래의 명령어는 실행되지 않는다. 전역으로 설치되었을 경우에만 패키지 이름만 입력해도 실행이 가능하다.

$ <package-name>

이래서 --save-dev로 설치한 json-server는  json-server --watch db.json --port 8080 로 실행할 수 없던 것이다.

 

로컬로 설치된 패키지는 아래와 같이 경로를 입력하면 실행할 수 있다.

$ ./node_modules/.bin/<package-name>

 

아래와 같이 package.json 파일에서 scripts를 수정해주면 npm run 명령어를 이용하여 실행할 수 있다.

{
  "name": "whatever",
  "version": "1.0.0",
  "scripts": {
    "some-package": "package-name"
  }
}
$ npm run <package-name>

 

2. npx

$ npx <package-name>

로컬에 설치된 package를 실행하고자 할 경우 npx <패키지 이름>을 입력한다.

 

npx는 로컬 혹은 전역에 패키지가 설치되어있는지 확인 후 실행하며, 만약 패키지가 설치되어 있지 않다면 해당 패키지를 일회성으로 실행한다. 이는 가장 최신 버전의 패키지를 업그레이드 없이 실행할 수 있도록 한다.

 

 

출처 https://stackoverflow.com/questions/50605219/difference-between-npx-and-npm/52018825#52018825