답변:
postinstall
스크립트 만 비활성화 할 수는 없습니다 . 그러나 다음을 사용하여 모든 스크립트를 비활성화 할 수 있습니다.
$ npm install --ignore-scripts
delbertooo가 주석에서 언급했듯이 종속성의 스크립트도 비활성화합니다.
--ignore-scripts
은 의존성에서도 모든 스크립트를 비활성화합니다. 종속성이 스크립트를 실행하여 일부 바이너리를 설치해야하는 경우 중단되거나 불완전 할 수 있습니다.
--ignore-scripts
, 또는 관련 구성 옵션 (전 세계적으로 설정)도 npm run start
자동으로 아무것도하지 않고 성공을보고 한다는 것을 의미합니다 . 몹시 놀라게 하다.
npm 구성 파일에서 설정을 활성화 할 수도 있습니다.
npm config set ignore-scripts true
참고 : 이렇게하면 모든 NPM 패키지에 대한 스크립트가 비활성화됩니다.
자신의 라이브러리 에서이 작업을 수행하려면 다음과 같은 간단한 것이 좋습니다.
#!/usr/bin/env bash
## this is your postinstall.sh script:
set -e;
if [ "$your_pkg_skip_postinstall" == "yes" ]; then
echo "skipping your package's postinstall routine.";
exit 0;
fi
그런 다음 다음을 사용하여 npm 설치를 수행하십시오.
your_pkg_skip_postinstall="yes" npm install
프로젝트에 대한 설치 후 스크립트를 비활성화하고 싶었지만 프로젝트 종속성의 모든 스크립트를 실행하려고했습니다 npm install
. 이것이 내가 한 일입니다.
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
이제 환경 변수 SKIP_BUILD = 1을 설정하면 패키지가 빌드되지 않고 종속성이 올바르게 빌드됩니다.
SKIP_BUILD=1 npm install