
ni는 프로젝트의 잠금 파일이나 packageManager 항목을 바탕으로 npm, Yarn, pnpm, Bun, Deno, nub, aube 가운데 사용할 패키지 관리자를 판별해 명령을 실행하는 도구다. 패키지 설치뿐 아니라 실행·업데이트·삭제 등에도 짧은 공통 명령을 쓸 수 있다.
설치는 npm i -g @antfu/ni로 안내한다. ni는 설치와 의존성 추가를, nr은 프로젝트 스크립트 실행을, nlx는 패키지 다운로드 후 실행을 맡는다. nup은 업데이트, nun은 삭제, nci는 클린 설치, nd는 의존성 정리, na는 현재 패키지 관리자를 호출하는 별칭이다. 일부 명령에는 대화형 선택 기능도 있다.
ni는 yarn.lock, pnpm-lock.yaml, package-lock.json, bun.lock 등 잠금 파일을 감지한다. packageManager 항목이 있으면 이를 기준으로 삼는다. 따라서 프로젝트의 패키지 관리자 판별을 위해 잠금 파일을 사용하는 방식을 전제로 한다.
v29.0.0부터는 pnpm·Yarn Berry·Bun 워크스페이스의 카탈로그도 지원한다. 카탈로그가 감지되면 새 의존성의 버전 고정 대신 catalog: 참조를 package.json에 기록하고 워크스페이스 카탈로그를 갱신한다. -D는 개발 의존성 영역에 적용되며 -w는 워크스페이스 루트를 대상으로 한다. 기존 카탈로그 항목만 재사용하거나 카탈로그 기능을 끄려면 ~/.nirc 또는 환경 변수 NI_CATALOG를 설정할 수 있다.
패키지 관리자가 설치되지 않았을 때 자동 설치를 사용하려면 NI_AUTO_INSTALL=true로 설정한다. 기본 설정과 환경 변수로 대체 패키지 관리자, 전역 설치용 관리자, 카탈로그 모드 등을 지정할 수 있다. Node.js 22 이상에서는 runAgent=node로 스크립트 실행에 node --run을 사용하도록 설정할 수 있다.
Windows PowerShell에는 ni가 New-Item의 기본 별칭으로 등록돼 있어 충돌할 수 있다. 현재 세션에서 별칭을 제거하거나 PowerShell 프로필에 제거 명령을 추가해야 한다. 프로젝트 문서와 설치 방법은 ni 저장소에서 확인할 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요