npm install
명령 플래그 또는 환경 변수를 통해에 대한 사용자 정의 패키지 대상을 지정할 수 있습니까?
기본적으로 npm 로컬 설치 node_modules
는 현재 디렉토리 내에 있지만 node_modules
예를 들어 다른 디렉토리 내에 설치하고 싶습니다 vendor/node_modules
. 어떻게 그렇게 할 수 있습니까?
답변
TL; DR
--prefix
플래그와 --global
* 플래그 를 사용하여이를 수행 할 수 있습니다 .
pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules
bower@0.7.0 /Users/pje/foo/vendor/node_modules/bower
* 이것은 “글로벌”설치에도 불구하고, 설치된 쓰레기통하지 않는 명령 줄을 통해 액세스 할 수 없습니다 ~/foo/vendor/node_modules
에 존재합니다 PATH
.
TL; R
구성 가능한 모든 속성은 npm
6 개의 다른 장소에서 설정할 수 있습니다. 우선 순위에 따라 :
- 명령 줄 플래그 :
--prefix ./vendor/node_modules
- 환경 변수:
NPM_CONFIG_PREFIX=./vendor/node_modules
- 사용자 구성 파일 :
$HOME/.npmrc
또는userconfig
param - 글로벌 구성 파일 :
$PREFIX/etc/npmrc
또는userconfig
param - 내장 구성 파일 :
path/to/npm/itself/npmrc
- 기본 구성 : node_modules / npmconf / config-defs.js
기본적으로 로컬로 설치된 패키지는로 이동합니다 ./node_modules
. 전역 prefix
변수 는 구성 변수 로 이동 합니다 ( /usr/local
기본적으로).
npm config list
현재 구성을 확인 npm config edit
하고 변경하기 위해 실행할 수 있습니다 .
추신
일반적으로 npm
의 문서는 정말 유용합니다. 폴더 섹션은 NPM의 좋은 구조 개요하고 구성 섹션은이 질문에 대한 대답.
답변
구성에서 이것을 원하면 다음과 같이 npm 구성을 설정할 수 있습니다.
npm config set prefix "$(pwd)/vendor/node_modules"
또는
npm config set prefix "$HOME/vendor/node_modules"
구성을 확인하십시오
npm config ls -l
또는 @pje가 말하고 --prefix
깃발을 사용하는 것처럼
답변
OSX의 경우 사용자 $HOME
(아마도 / Users / yourname /) 로 이동하여 존재하지 않는 경우 .npmrc
파일 (npm이 사용자 구성에 사용하는 파일)을 작성하고 npm 패키지의 디렉토리를 작성하십시오. / Users / yourname / npm에 설치하십시오. 해당 .npmrc 파일에서 “접두사”를 새 npm 디렉토리로 설정하십시오.이 디렉토리는 “전역 적으로”설치된 npm 패키지가 설치됩니다. 이러한 “전역”패키지는 분명히 사용자 계정에서만 사용할 수 있습니다.
.npmrc에서 :
prefix=${HOME}/npm
그런 다음 명령 행에서이 명령을 실행하십시오.
npm config ls -l
자체 로컬 구성과 전역 npm 구성 모두에 대한 출력을 제공해야하며 로컬 접두어 구성이 긴 출력 목록의 맨 위 근처에 반영되는 것을 볼 수 있습니다.
보안을 위해 /usr/local
다른 곳에서 권장 한 것처럼 폴더 를 숨길 때 사용자 계정의 npm 동작을 구성하는 것이 좋습니다.
답변
예를 들어 Windows 7에서는 다음과 같은 명령 / 작업 집합을 사용할 수 있습니다.
개인 환경 변수를 작성하십시오. 이중 백 슬래시는 필수입니다.
- 변수 이름 :
%NPM_HOME%
- 변수 값 :
C:\\SomeFolder\\SubFolder\\
이제 구성 값을 새 폴더 (예시 파일 이름)로 설정하십시오.
- npm 폴더 설정
npm config set prefix "%NPM_HOME%\\npm"
- npm-cache 폴더 설정
npm config set cache "%NPM_HOME%\\npm-cache"
- npm 임시 폴더를 설정하십시오.
npm config set tmp "%NPM_HOME%\\temp"
선택적으로 원본 폴더의 내용을 제거 할 수 있습니다 구성을 변경 하기 전에 .
-
npm-cache 삭제
npm cache clear
-
npm 모듈 나열
npm -g ls
-
npm 모듈 삭제
npm -g rm name_of_package1 name_of_package2
답변
공유 종속성이있는 여러 프로젝트가 DRYer가되기를 원하는 것을 직접 찾은 후에 나는 다음을 발견했습니다.
- 로컬로 설치하는 것은 사용하려는 모든 것을위한 노드 방식입니다.
require()
- 전역 설치는 경로에 원하는 바이너리에 대한 것이지만 다음을 통한 것은 아닙니다.
require()
- 접두사를 사용하면 적절한 경로
bin
와man
경로를 추가해야 합니다.$PATH
npm link
( info )를 사용하면 전역 설치의 소스로 로컬 설치를 사용할 수 있습니다
→ 노드 방식을 고수하고 로컬로 설치
심판 :
답변
