pnpm run
별칭: run-script
패키지의 매니페스트 파일에 정의된 스크립트를 실행합니다.
예시
다음과 같이 package.json
에 구성된 watch
스크립트가 있다고 가정해 보겠습니다.
"scripts": {
"watch": "webpack --watch"
}
이제 pnpm run watch
을 사용하여 해당 스크립트를 실행할 수 있습니다! 간단하지요? 키 입력과 시간을 절약하는 것을 좋아하는 사람들을 위해 주목해야 할 또 다른 사항은 모든 스크립트가 pnpm 명령으로 앨리어싱된다는 것입니다. 따라서 궁극적으로 pnpm watch
는 pnpm run watch
의 축약형입니다 (이미 존재하는 pnpm 명령과 동일한 이름을 공유하지 않는 스크립트에만 해당함).
Running multiple scripts
스크립트의 이름 대신 정규식을 사용하여 동시에 여러 스크립트를 실행할 수 있습니다.
pnpm run "/<regex>/"
다음과 같이 watch:
로 시작하는 모든 스크립트를 실행할 수 있습니다.
pnpm run "/^watch:.*/"
Details
셸의 기존 PATH
에 더하여, pnpm run
은 scripts
에 제공된 PATH
에 node_modules/.bin
을 포함합니다. 즉, 패키지가 설치되어 있는 한 일반 명령어처럼 스크립트에서 사용할 수 있습니다. 예를 들어, eslint
가 설치되어 있는 경우, 다음과 같이 스크립트 를 작성할 수 있습니다.
"lint": "eslint src --fix"
그리고 eslint
가 셸에 전역적으로 설치되어 있지 않아도 실행됩니다.
워크스페이스의 경우, <workspace root>/node_modules/.bin
도 에 PATH
에 추가되었으므로, 도구가 워크스페이스의 루트에 설치되었다면 어떤 워크스페이스 패키지의 scripts
에서도 호출될 수 있습니다.
npm run
과의 차이점
기본적으로, pnpm은 사용자 정의 스크립트 (예를 들어 prestart
) 에 대해 임의의 pre
및 post
훅을 실행하지 않습니다. npm으로부터 상속된 이 행위는 스크립트를 명시적인 대신 암시적인 상태로 만들며, 실행 흐름을 난독화합니다. 또한 pnpm serve
가 pnpm preserve
를 동작시키는 놀라운 실행으로 이어졌습니다.
If for some reason you need the pre/post scripts behavior of npm, use the enable-pre-post-scripts
option.
환경
There are some environment variables that pnpm automatically creates for the executed scripts. These environment variables may be used to get contextual information about the running process.
These are the environment variables created by pnpm:
- npm_command - contains the name of the executed command. If the executed command is
pnpm run
, then the value of this variable will be "run-script".
옵션
run
명령어에 대한 모든 옵션은 스크립트의 이름 앞에 나열되어야 합니다. 스크립트의 이름 뒤에 나열된 옵션은 실행된 스크립트에 전달됩니다.
이 모든 것은 --silent
옵션과 함께 pnpm CLI를 실행합니다.
pnpm run --silent watch
pnpm --silent run watch
pnpm --silent watch