package.json을 통해 "전역"npm 종속성 설치
이 질문에 이미 답변이 있습니다.
패키지가를 통해 설치 될 때 명령 줄을 통해 자동으로 설치 및 실행되기를 원하는 몇 가지 "전역"종속성 (jshint, csslint, buster 등)이 npm install
있습니다. 이것이 가능한가?
현재 수동으로 다음을 수행하고 있습니다.
npm install -g <package_name>
- 내 프로젝트 내에서 :
npm link <package_name>
업데이트 : 방금 npm에 대한 이 기능 요청 을 발견했습니다. scripts
package.json 내의 구성이 갈 길인 것 같습니다 .
다시 업데이트 : 또는 npm 문서를 읽은 후 .gyp 파일 을 사용해야 합니까? 혼란 스럽습니다.
.NET Framework에서 종속성을 "전역"으로 지정할 수는 없습니다 package.json
. 그리고 이것은 당신이 참조한 기능 요청에서 Isaac이 말한 것처럼 의도적으로 설계된 것입니다 .
그래, 우리는 이러지 않을거야.
그러나 "바이너리"는 패키지가 로컬로 설치된 경우에도 계속 사용할 수 있습니다. 그들은 .../node_modules/.bin/
. 그리고 preinstall
스크립트 로 대기열에 넣을 수 있어야합니다 .
그러나 일련의 명령이 다소 길다면 ( " jshint, csslint, buster 등. "이 제안하는 것처럼) grunt
다양한 작업을 수행하는 것과 같은 빌드 도구를 사용하는 것이 좋습니다 .
{
// ...,
"scripts": {
"preinstall": "grunt"
}
}
로컬 종속성을 설치 한 다음 PATH를 .NET으로 설정하는 bash 스크립트를 사용하는 패턴이 정말 마음에 듭니다 ./node_modules/.bin
.
파일 : env.sh
# Add your local node_modules bin to the path for this command
export PATH="./node_modules/.bin:$PATH"
# execute the rest of the command
exec "$@"
그런 다음 bash 명령 전에이 스크립트를 사용할 수 있습니다. Makefile 또는 npm 스크립트와 페어링하는 경우 :
파일 : Makefile
lint :
./env.sh csslint my_styles
파일 : package.json
"scripts": {
"lint": "./env.sh csslint my_styles"
}
이러한 파일의이 작업은 일부 전역 위치에서 csslint를 참조하는 것처럼 보이지만 실제로는 node_modules bin의 버전을 사용합니다.
이것의 정말 놀라운 이점은 다른 노드 모듈과 마찬가지로 이러한 종속성을 쉽게 버전화할 수 있다는 것입니다. 글로벌 설치 솔루션을 고수한다면 다른 프로젝트 중 하나에 필요한 사용자 시스템의 특정 버전을 방해 할 수 있습니다.
이것을 시도해야합니다 : https://github.com/lastboy/package-script
나는 그것을 사용하여 package.json에서 바로 글로벌 npm 패키지를 설치했습니다. 기술적으로 지식이없는 고객에게 적합합니다.
패키지를 설치하지 않은 경우 이미 설치되어 있는지 확인합니다!
참고 URL : https://stackoverflow.com/questions/14657170/installing-global-npm-dependencies-via-package-json
'IT TIP' 카테고리의 다른 글
색상의 유사성을 확인하는 알고리즘 (0) | 2020.10.19 |
---|---|
C ++ 11 : 가변 템플릿 함수 매개 변수의 수? (0) | 2020.10.19 |
pass-by-value 및 std :: move의 장점 (0) | 2020.10.19 |
ReactJS : 컴포넌트 초기 상태를 소품으로 전달하는 이유는 무엇입니까? (0) | 2020.10.19 |
"메모리 부족"이 복구 가능한 오류입니까? (0) | 2020.10.19 |