node.js에 대한 가상 환경이 있습니까?


134

위키 모듈 페이지를 검색했지만 virtualenv (python) 또는 rvm과 비슷한 것을 찾을 수 없습니다.

여기 누구든지 자신의 환경에서 node.js를 분리합니까? 시스템 전체에 npm을 설치하고 싶지 않습니다.

답변:


44

시스템 전체 npm 패키지가 주요 문제라면 npm과 함께 매우 멋진 '번들'명령을 사용하는 것이 좋습니다. 이것은 rvm이 아닌 gem을 고정하거나 레일에서 번 들러를 사용하는 것에 더 가깝습니다.

정말 쉽습니다. package.json 파일을 작성하십시오.

{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}

그런 다음 다음을 실행하십시오.

npm bundle vendor

또는 npm 버전이 1.0 이상인 경우 다음을 실행하십시오.

npm install

공급 업체 디렉토리에 고정합니다. 다음을 사용하십시오.

require.paths.unshift('./vendor');

1
@andho 이것을 직접 테스트하지는 않았지만 최신 버전의 NPM이 단순히 npm install이것을 사용한다는 것을 알고 있습니다 .
Marnen Laibow-Koser 2013

13
지금 테스트하고 확인했습니다. NPM 1.0부터 npm install교체 npm bundle되었습니다.
Marnen Laibow-Koser

184

nodeenv -node.js의 가상 환경 (아날로그 virtualenv )


이것은 처음에는 훌륭해 보였지만 node.js를 사용하여 nodeenv로 npm 설치를 동시에 수행 할 수 없었습니다 (osx Lion에서). 아마도 나는 각 노드 환경에 대해 nvm install을 사용하고 npm을 개별적으로 설치할 수 있었을 것입니다 ... 시도 할 때 이미 다른 수단으로 여러 노드 버전을 수행했습니다.
Mikael Lepistö

2
기존 Python 가상 환경 내에 설치 node.js하여 Python 환경과 함께 환경을 활성화 하는 데 사용할 수 있습니다 . 참조하십시오 nodeenv -p.
naitsirhc

3
nodeenv (실제로 virtualenv + nodeenv)는 nave와 zsh 이외의 다른 쉘을 지원하지 않기 때문에 어항 사용자에게도 적합합니다.
akarca

1
virtualenv-wrapper와 동등한 것이 있습니까?
vmonteco 2019

25

도움이 될 수있는 일부 노드 버전 관리 시스템도 있습니다.

Nave를 확인하십시오 https://github.com/isaacs/nave

NVM은 https://github.com/creationix/nvm 에서도 사용할 수 있습니다

n https://github.com/visionmedia/n 이라는 것도 있습니다


1
Nvm은 다양한 버전의 node.js와 npm을 동시에 설치하려는 경우 효과적입니다. 나머지 부분에서는 npm으로 디렉토리를 프로젝트하기 위해 필요한 모듈을 설치하는 것으로 충분했습니다.
Mikael Lepistö

2
디렉토리를 변경할 때 자동 전환 을 nvm보거나 n자동으로 전환하려면 다음을 참조하십시오 avn. github.com/wbyoung/avn
wbyoung

1
내가 아는 한 n은 가상 환경이 아닙니다. 그것은 전세계에 설치된 모든 라이브러리를 공유하지만 npm은 공유합니다.
Yannic Hamann

7

bxjx의 답변은 개념적으로 정확합니다. 그러나 bundle 명령은 더 이상 디렉토리를 사용하지 않습니다. 그것은 항상 으로 패키지 상품 node_modules이 NPM이 나중에 발견 (두 번 설치 종속성을 피할 수 있습니다) 여기서 알 수 있도록, 폴더.

모든 솔루션에는 npm 및 nave "시스템 전체"(즉, 어딘가에 PATH있을 수 있음 ~)를 설치 한 다음 가상 환경에 특정 종속성 만 설치하는 것이 포함 됩니다.

나는 github 문제에 대해 더 철저히 대응했다 .

tl; dr : 유스 케이스는 유효하고 도움이되며 대부분 존재하지만 가능한 한 잘 제공되지는 않습니다. 우리는 그것을 생각하고 올바르게해야합니다.


GitHub 문제가 더 이상 존재하지 않는 것 같습니다. 업데이트 된 링크가 있습니까?
Drazisil

4

항상 전 세계적으로 종속성을 설치할 필요는 없습니다. 일반적으로 npm 패키지가 제공하는 명령을 사용할 수 있기 때문에 권장되지만 로컬 ( node_modules) 디렉토리 에 설치하는 경우 이러한 명령을 사용할 수도 있습니다.이 명령은 node_modules/.bin/디렉토리 에만 적용 되므로 node_modules/.bin/<command>, 이는 성가신 일이지만 PATH환경 변수 에이 경로를 추가 할 수 있습니다 .

export PATH=node_modules/.bin:$PATH

그런 다음 입력 만하면 <command>작동합니다!

실제로 .bin디렉토리 의 절대 경로를 반환하는 npm 명령이 있습니다 .

$ npm bin
/path/to/node_modules/.bin

이 명령은 프로젝트의 하위 디렉토리에있을 때도 작동하며 node_modules/.bin상위 디렉토리에서 찾은 첫 번째 디렉토리 를 반환합니다 .

에이 별명을 .bashrc추가하여 .bin/디렉토리를 자동으로 다음에 추가 할 수 있습니다 PATH.

alias nodebin='export PATH=$(npm bin):$PATH'

따라서 node_modules/루트에 디렉토리가있는 프로젝트의 디렉토리에있을 때 디렉토리에있는 nodebin모든 명령을 입력 한 다음 사용할 수 있습니다 .bin/!



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.