2017-10-04 8 views
2

패키지가 설치되기 전에 일부 정책 스크립트를 실행하려고합니다. 예를 들어 :NPM 사전 설치 스크립트

{ 
    "name": "pre-hook-check", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "preinstall": "echo preinstall", 
    "postinstall": "echo postinstall" 
    }, 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "abc": "^0.6.1", 
    "preact": "^8.2.5" 
    } 
} 

그것은 사전 보인다 내가 npm install을 할 경우에만 작동 후 위의 예에서 스크립트를 설치,하지만 난 그게 내가 아무것도 설치하려고 할 때마다 실행하고자합니다.

예 : 팀에서 npm install <some package>을 실행할 때마다 패키지 버전을 확인하기위한 스크립트를 작성한다고 가정 해 보겠습니다. 나는 패키지를 설치하는 버전을 확인하고 그 버전이 "1.0.0"이상인지 확인하고 싶습니다.

는 제가 설치하려고하는 패키지의 버전

npm info lodash version

및 검사를 간다 사전 설치 스크립트를 작성하기 위해 계획되었다. 버전을 구할 수 없다면 설치하기 전에 대화식으로 사용자의 승인을 요청할 계획입니다.

+1

멋진 아이디어입니다.하지만 npm에는 그럴 수 없습니다. –

답변

0

당신 말이 맞아 우리가 NPM 설치하는 경우에만 사전 설치 스크립트 실행 모듈을 설치하기 전에 스크립트를 실행하는 방법은 현재 없습니다하지만 당신은 쉘 스크립트https://docs.npmjs.com/cli/view 그렇게 할 NPM보기를 사용할 수 있습니다.

첫째, 당신이 chmod +x moduleinstall.sh를 사용하여 실행 한 후이 쓰기 수 있도록 당신의 package.json과 같은 범위와 그

echo 'Enter the name of the module' 
read module_name 
npm view $module_name version 
echo "Do you want to install this version(y/N) " 
read option 
if [ "$option" = "N" ] || [ "$option" = "n" ] 
then 
echo "exiting...." 
exit 1 
else 
npm install $module_name 
fi 

에 아래의 쉘 스크립트 확인이있는 moduleinstall.sh 파일을 만들려면

"scripts": { 
"test": "echo \"Error: no test specified\" && exit 1", 
"info": "./moduleinstall.sh" 
} 

package.json

지금 당신은 단지 명령 npm run info를 실행 한 다음 버전을 확인하여 모듈을 설치하도록 지시를 따라야한다. 다양한 npm보기 및 쉘 스크립팅 옵션을 사용하여 진행할 수 있습니다. 희망이 도움이됩니다.