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