[node.js] npm : 패키지 설치 후 스크립트 비활성화

패키지를 설치하는 동안 사후 설치 스크립트를 비활성화하는 npm 옵션이 있습니까? 또는 package.json에서 필드를 다시 쓰려면?



답변

postinstall스크립트 만 비활성화 할 수는 없습니다 . 그러나 다음을 사용하여 모든 스크립트를 비활성화 할 수 있습니다.

$ npm install --ignore-scripts

delbertooo가 주석에서 언급했듯이 종속성의 스크립트도 비활성화합니다.


답변

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. 이것이 내가 한 일입니다.

  1. 스크립트 작성 ./scripts/skip.js
if (process.env.SKIP_BUILD) {
    process.exit(0);
} else {
    process.exit(1);
}
  1. package.json 파일에서
 "scripts": {
  ...
  "postinstall": "node ./scripts/skip.js || npm run build",
  ...
 }

이제 환경 변수 SKIP_BUILD = 1을 설정하면 패키지가 빌드되지 않고 종속성이 올바르게 빌드됩니다.

SKIP_BUILD=1 npm install


답변