더북(TheBook)

Note ≣ npx

전역 설치를 기피하는 개발자들도 있습니다. 전역 설치한 패키지는 package.json에 기록되지 않아 다시 설치할 때 어려움이 있기 때문입니다. 이러한 경우를 위한 명령어로 npx가 있습니다.

콘솔

$ npm install --save-dev rimraf
$ npx rimraf node_modules

위와 같이 rimraf 모듈을 package.json의 devDependencies 속성에 기록한 후, 앞에 npx 명령어를 붙여 실행하면 됩니다. 그러면 패키지를 전역 설치한 것과 같은 효과(명령어로 사용 가능)를 얻을 수 있습니다. 패키지가 package.json에 기록되었으므로 버전 관리도 용이합니다. 이 책에서도 앞으로는 전역 설치 대신 npx를 사용합니다.

Note ≣ npm에 등록되지 않은 패키지

모든 패키지가 npm에 등록되어 있는 것은 아닙니다. 일부 패키지는 오픈 소스가 아니거나 개발 중인 패키지이므로 깃허브나 넥서스(Nexus) 등의 저장소에 보관되어 있을 수도 있습니다. 그러한 패키지들도 npm install [저장소 주소] 명령어를 통해 설치할 수 있습니다.

Note ≣ node_modules 내부 수정하기

종종 설치한 패키지 내부 소스 코드를 수정하고 싶을 때가 있습니다. 설치한 패키지에서 버그가 발생했는데, 당장 수정이 필요할 때 주로 그렇습니다. 문제는 수정한 그 당시에는 node_modules 내부 패키지가 잘 돌아가지만 한 번이라도 npm i를 입력하게 되면 수정한 내용이 초기화된다는 것입니다.

그래서 node_modules 내부의 수정 사항을 영구적으로 반영해주는 patch-package 패키지가 있습니다. package.json을 다음과 같이 수정하고 patch-package 패키지를 설치합시다.

package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "postinstall": "patch-package"
  },

콘솔

$ npm i patch-package
(node_modules 내부의 원하는 패키지 수정하기)
$ npx patch-package [수정한 패키지 이름]

이러면 patches 폴더가 생성되고 그 안에 patch 확장자를 가진 파일이 생성됩니다. 이후 npm i를 해도 patch-package가 patch 파일을 읽어서 수정 사항을 적용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.