n
– Node.js 버전을 대화형으로 관리Node.js 버전 관리: 하위 쉘도 없고, 프로필 설정도 없고, 복잡한 API도 없고, 간단 합니다.
n
– Node.js 버전을 대화형으로 관리 n
Linux용 Windows 하위 시스템을 포함하여 macOS, Linux 및 기타 다양한 Unix 계열 시스템에서 지원됩니다. BASH 스크립트로 작성되었지만 BASH를 명령 셸로 사용할 필요는 없습니다.
n
Microsoft Windows(예: PowerShell), Windows BASH용 Git 또는 Cygwin DLL의 기본 셸에서 작동하지 않습니다.
Node.js가 이미 설치되어 있는 경우 n
설치하는 쉬운 방법은 npm
사용하는 것입니다.
npm install -g n
n
실행할 때 사용되는 기본 루트 위치는 일반 사용자에게 쓰기 권한이 없는 /usr/local
입니다. 위 명령과 같이 npm을 사용하여 전역 모듈을 설치할 때 동일한 종류의 권한 오류가 발생할 수 있습니다. 세 가지 주요 옵션이 있습니다.
n
에게 지시합니다( N_PREFIX
참조).sudo
입력하세요. n
하위 디렉터리 n/versions
에 Node.js 버전을 캐시합니다. 활성 Node.js 버전은 bin
, include
, lib
및 share
하위 디렉터리에 설치됩니다.
시스템 디렉터리의 소유권을 가져오려면(옵션 1):
# make cache folder (if missing) and take ownership
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n
# make sure the required folders exist (safe to execute even if they already exist)
sudo mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
# take ownership of Node.js install destination folders
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
npm
아직 사용할 수 없는 경우 설치를 부트스트랩하는 한 가지 방법은 n
직접 다운로드하여 실행하는 것입니다. Node.js의 lts
버전을 설치하려면:
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install lts
# If you want n installed, you can use npm now.
npm install -g n
n
자체에 대한 업데이트 지원이 필요하지 않은 경우 다운로드를 저장하면 됩니다.
curl -fsSL -o /usr/local/bin/n https://raw.githubusercontent.com/tj/n/master/bin/n
chmod 0755 /usr/local/bin/n
n install lts
Homebrew를 사용하는 macOS에서는 n 수식을 설치할 수 있습니다.
brew install n
또는 MacPorts가 있는 macOS에서는 n 포트를 설치할 수 있습니다.
port install n
Linux 및 macOS에서는 n-install을 사용하면 GitHub에서 직접 설치할 수 있습니다. 예를 들어:
curl -L https://bit.ly/n-install | bash
n-install은 PREFIX
와 N_PREFIX
모두 $HOME/n
으로 설정하고, n
$HOME/n/bin
에 설치하고, 지원되는 셸의 초기화 파일을 수정하여 N_PREFIX
내보내고 $HOME/n/bin
PATH
에 추가하고, 최신 버전을 설치합니다. LTS Node.js 버전.
결과적으로, n
자체와 n 자체가 관리하는 모든 Node.js 버전은 선택적으로 구성 가능한 단일 디렉터리 내에서 호스팅되며, 나중에 포함된 n-uninstall
스크립트를 사용하여 제거할 수 있습니다. n-update
n
자체를 최신 버전으로 업데이트합니다. 자세한 내용은 n-install 저장소를 참조하세요.
이전에 설치된 Node.js를 다른 위치로 변경하려면 몇 가지 추가 단계가 필요할 수 있습니다. Node.js를 관리하기 위해 Homebrew 사용에서 n
사용으로 전환하는 연습 예제는 노드 위치 변경에 대한 문서를 참조하세요.
노드를 설치한 후 "설치된" 위치와 "활성" 위치가 다른 경우 여러 버전에 문제가 있는 것입니다.
% n lts
copying : node/20.12.2
installed : v20.12.2 to /usr/local/bin/node
active : v21.7.3 at /opt/homebrew/bin/node
간단히 n <version>
실행하여 Node.js 버전을 다운로드하고 설치하세요. <version>
이미 다운로드된 경우 n
해당 캐시에서 설치합니다.
n 10.16.0
n lts
n
자체적으로 실행하여 다운로드한 버전을 보고 선택한 버전을 설치합니다.
$ n
node/4.9.1
ο node/8.11.3
node/10.15.0
Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
(화살표나 ctrl+n 및 ctrl+p를 사용하는 대신 j 및 k를 사용하여 다음 또는 이전 버전을 선택할 수도 있습니다.)
설치 후 활성 노드 버전이 변경되지 않으면 오래된 버전이 표시될 경우를 대비해 새 셸을 열어보세요.
n
명령에 대한 대상 Node.js 버전을 지정하는 방법은 다양합니다. 대부분의 명령은 일치하는 최신 버전을 사용하며 n ls-remote
일치하는 여러 버전을 나열합니다.
숫자 버전 번호는 완전하거나 불완전할 수 있으며 선택적으로 앞에 v
가 붙습니다.
4.9.1
8
: 8.xy 버전v6.1
: 6.1.x 버전특히 유용한 두 가지 버전에 대한 레이블이 있습니다.
lts
: 최신 장기 지원 공식 릴리스latest
, current
: 최신 공식 릴리스 현재 디렉터리나 상위 디렉터리의 파일에서 대상 버전을 읽는 auto
레이블이 있습니다. n
순서대로 찾습니다.
.n-node-version
: 한 줄의 버전입니다. n
으로 사용자 정의합니다..node-version
: 한 줄의 버전입니다. 여러 도구에서 사용: node-version-usage.nvmrc
: 한 줄의 버전입니다. nvm
에서 사용됩니다.engine
찾으십시오. engine
레이블은 package.json
파일을 찾고 engines
필드를 읽어 호환되는 Node.js를 결정합니다. 설치된 jq
또는 node
버전이 필요하며 npx semver
사용하여 복잡한 범위를 해결합니다.
명명된 릴리스 스트림이 지원됩니다.
argon
, boron
, carbon
: LTS 릴리스 스트림의 코드명다음 Node.js 지원 별칭을 사용할 수 있지만 일치하는 최신 버전으로 해결하면 됩니다.
active
, lts_active
, lts_latest
, lts
, current
, supported
마지막 버전 형식은 선택적으로 전체 또는 불완전 버전 뒤에 원격 다운로드 폴더 이름을 사용하여 사용 가능한 다른 릴리스를 지정하기 위한 것입니다.
nightly
test/v11.0.0-test20180528
rc/10
일부 캐시된 버전을 삭제하세요.
n rm 0.9.4 v0.10.0
설치된 버전을 제외한 모든 캐시된 버전 제거:
n prune
설치된 Node.js를 제거합니다(캐시된 버전에는 영향을 주지 않음). 이는 node의 시스템 버전으로 되돌리거나(다른 위치에 있는 경우), 더 이상 node 및 npm을 사용하고 싶지 않거나 다른 관리 방식으로 전환하는 경우 유용할 수 있습니다.
n uninstall
다시 설치하지 않고 다운로드한 Node.js 버전으로 직접 작업할 수 있는 세 가지 명령이 있습니다.
다운로드한 node
버전의 경로를 표시할 수 있습니다.
$ n which 6.14.3
/usr/local/n/versions/6.14.3/bin/node
또는 n run
명령을 사용하여 다운로드한 node
버전을 실행합니다.
n run 8.11.3 --debug some.js
또는 node
및 npm
이 다운로드한 Node.js 버전이 되도록 PATH
수정하여 명령을 실행하세요. (주의: 이 방식으로 실행되는 npm
대상 노드 버전 폴더의 전역 node_modules를 사용합니다.)
n exec 10 my-script --fast test
n exec lts zsh
Node.js 설치에는 일반적으로 npm
, npx
및 corepack
도 포함되지만 --preserve
사용하여 현재(특히 최신) 버전을 보존할 수 있습니다.
$ npm install -g npm@latest
...
$ npm --version
6.13.7
# Node.js 8.17.0 includes (older) npm 6.13.4
$ n -p 8
installed : v8.17.0
$ npm --version
6.13.7
환경 변수를 비어 있지 않은 문자열로 설정하여 이를 기본값으로 설정할 수 있습니다. npm
및 corepack
에 대한 별도의 환경 변수가 있습니다.
export N_PRESERVE_NPM=1
export N_PRESERVE_COREPACK=1
환경 변수에 관계없이 원하는 동작을 얻기 위해 명시적으로 설정할 수 있습니다.
n --preserve nightly
n --no-preserve latest
명령줄 도움말은 n --help
에서 얻을 수 있습니다.
다운로드할 수 있는 일치하는 원격 버전을 나열합니다.
n ls-remote lts
n ls-remote latest
n lsr 10
n --all lsr
캐시에 다운로드된 버전을 나열합니다.
n ls
버전을 캐시에 다운로드합니다.
n download 22
인터넷을 사용할 수 없는 상태에서 캐시된 버전(이미 다운로드됨)에 액세스하려면 n
사용하세요.
n --offline 12
--cleanup
사용하여 설치한 후 캐시 버전을 제거합니다. 이는 도커 컨테이너와 같은 일회성 설치에 특히 유용합니다.
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install --cleanup lts
일반적으로 n run
, n exec
및 n which
대상 버전이 캐시에 아직 없으면 실패합니다. --download
추가하여 사용 가능한 경우 캐시를 사용하거나 필요한 경우 다운로드할 수 있습니다.
n --download run 18.3 my-script.js
문제 해결에 도움이 되는 진단 표시:
n doctor
기본 https://nodejs.org/dist/와 동일한 레이아웃을 가진 다른 Node.js 미러를 사용하려는 경우 N_NODE_MIRROR
정의할 수 있습니다.
한 가지 예는 다음을 정의할 수 있는 중국 사용자를 위한 것입니다.
export N_NODE_MIRROR=https://npmmirror.com/mirrors/node
또 다른 예는 armv6l(Raspberry Pi) 및 32비트 x86과 같이 공식적으로 제공되지 않는 일부 플랫폼에 대한 다운로드가 있는 Node.js 비공식 빌드 프로젝트입니다.
export N_NODE_MIRROR=https://unofficial-builds.nodejs.org/download/release
Alpine에서 musl
libc
사용하는 것과 같이 n
에 의해 자동 감지되지 않는 경우 명시적으로 아키텍처를 지정해야 할 수도 있습니다.
export N_NODE_MIRROR=https://unofficial-builds.nodejs.org/download/release
apk add bash curl libstdc++
n --arch x64-musl install lts
커스텀 미러에 인증이 필요한 경우 URL로 인코딩된 사용자 이름과 비밀번호를 URL에 추가할 수 있습니다. 예를 들어
export N_NODE_MIRROR=https://encoded-username:encoded-password@host:port/path
기본 https://nodejs.org/download와 동일한 레이아웃을 가진 다른 미러에 대한 N_NODE_DOWNLOAD_MIRROR
도 있습니다.
기본적으로 n
시스템 아키텍처와 일치하는 바이너리를 선택합니다. 예를 들어 64비트 시스템에서 n
64비트 바이너리를 다운로드합니다.
Apple 실리콘이 탑재된 Mac의 경우:
n
기본적으로 기본적으로 실행되는 arm64 바이너리로 설정됩니다.n
기본적으로 Rosetta 2에서 실행되는 x64 바이너리입니다. -a
또는 --arch
옵션을 사용하여 기본 아키텍처를 재정의할 수 있습니다.
예를 들어 x64 바이너리를 사용하여 최신 버전의 Node.js를 다시 설치합니다.
n rm current
n --arch x64 current
n
명령은 기본적으로 /usr/local
에 다운로드 및 설치되지만 N_PREFIX
정의하여 이 위치를 재정의할 수 있습니다. $HOME/.n
으로 위치를 변경하려면 셸 초기화 파일에 다음과 같은 줄을 추가하세요.
export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH
다운로드를 다른 위치에 저장하려면 N_CACHE_PREFIX
사용하세요. 이는 활성 노드 버전이 설치된 위치에 영향을 주지 않습니다 .
n
시스템에서 tar가 xz 압축 해제를 지원할 가능성이 있는 경우 다운로드를 위해 기본적으로 xz 압축 Node.js tarball을 사용합니다. 환경 변수를 0 또는 0이 아닌 값으로 설정하여 자동 선택을 재정의할 수 있습니다.
export N_USE_XZ=0 # to disable
export N_USE_XZ=1 # to enable
환경 변수에 관계없이 원하는 동작을 얻도록 명시적으로 지정할 수 있습니다.
n install --use-xz nightly
n install --no-use-xz latest
간단히 말해서:
N_NODE_MIRROR
: 커스텀 소스 참조N_NODE_DOWNLOAD_MIRROR
: 사용자 정의 소스 참조N_MAX_REMOTE_MATCHES
기본 ls-remote
최대 일치 버전 20개를 변경합니다.N_PRESERVE_NPM
: npm 보존 참조N_PRESERVE_COREPACK
: npm 보존 참조 n
사전 구축된 Node.js 패키지를 다운로드하고 단일 접두사(예: /usr/local
)에 설치합니다. 이전 버전을 덮어쓰게 됩니다. 이 위치의 bin
폴더는 PATH
(예: /usr/local/bin
)에 있어야 합니다.
다운로드는 재설치에 사용할 캐시 폴더에 보관됩니다. 다운로드는 n which
, n run
및 n exec
사용하여 제한적으로 사용할 수도 있습니다.
Node.js 설치의 일부인 npm
자체를 제외하고 전역 npm
패키지는 설치 시 변경되지 않습니다.