Node.js를 사용한 패키지 독립적 스크립트

NPM, Yarn 및 PNPM에서 스크립트 실행을 단순화하는 방법

package.json 파일에 "npm my-script" 또는 "yarn my-script"와 같은 사용자 지정 스크립트가 있는 경우 정의한 패키지 관리자에서만 작동합니다. 그러나 NPM은 명시적으로 지정하지 않고 매번 현재 실행 파일을 호출하는 API를 제공합니다.

{
  "scripts": {
    "cleanup": "./clean-up.js",
    "copy": "./copy.js",
    "prepare": "npm run cleanup && npm run copy"
  }
}

$npm_execpath 사용

"npm" 또는 "yarn"(또는 "pnpm"과 같은 다른 패키지 관리자) 대신 문자열 "$npm_execpath"를 사용하면 이 스크립트는 현재 개발자가 원래 스크립트를 호출하는 데 사용한 것과 상관없이 모든 패키지 관리자에서 작동합니다. .

{
  "scripts": {
    "cleanup": "./clean-up.js",
    "copy": "./copy.js",
    "prepare": "$npm_execpath run cleanup && $npm_execpath run copy"
  }
}

모든 기계에서 호환됩니까?

슬프게도 "$npm_execpth"를 사용하여 스크립트가 패키지 관리자와 함께 작동하도록 하는 것은 Windows가 설치된 시스템에서 안정적으로 작동하지 않습니다.

package.json에서 스크립트를 호출하는 가장 안정적인 방법은 무엇입니까?

따라서 package.json 파일에서 사용자 지정 스크립트를 호출하는 가장 안정적인 방법은 여전히 패키지 관리자 실행 파일을 명시적으로 정의하고 팀에서 해당 스크립트만 사용하도록 하는 것입니다.

"$npm_execpath"를 사용하여 해당 스크립트를 안정적으로 실행할 수 있는 Windows를 실행하지 않는 장치에서 더 좋습니다.