Movatterモバイル変換


[0]ホーム

URL:


Перейти до основного змісту
Версія: 10.x

pnpm run

Псевдоніми:run-script

Запускає сценарій, визначений у файлі маніфесту пакунка.

Приклади

Припустімо, у вашомуpackage.json налаштовано сценарійwatch, наприклад:

"scripts":{
"watch":"webpack --watch"
}

Тепер ви можете запустити скрипт за допомогоюpnpm run watch! Просто, чи не так?Ще одна річ, на яку слід звернути увагу тим, хто любить економити натискання клавіш і час: усі скрипти отримують псевдо як команди pnpm, тож, зрештою,pnpm watch — це просто скорочення дляpnpm run watch (ТІЛЬКИ для скриптів, які не мають однакового імені з уже наявними командами pnpm).

Запуск кількох сценаріїв

Ви можете запускати кілька сценаріїв одночасно, використовуючи регулярний вираз замість назви сценарію.

pnpm run "/<regex>/"

Запустить усі сценарії, які починаються зwatch::

pnpm run "/^watch:.*/"

Деталі

На додаток до вже наявногоPATH оболонки,pnpm run включаєnode_modules/.bin доPATH, наданого дляscripts. Це означає, що якщо у вас встановлено пакунок, ви можете використовувати його у скрипті як звичайну команду. Наприклад, якщо у вас встановленоeslint, ви можете написати такий скрипт:

"lint":"eslint src --fix"

І навіть якщоeslint не встановлено глобально у вашій оболонці, він працюватиме.

Для робочих просторів,<workspace root>/node_modules/.bin також додається доPATH, тому якщо інструмент встановлено у корені робочого простору, його можна викликати уscripts будь-якого пакунка робочого простору.

Оточення

Існує декілька змінних середовища, які pnpm автоматично створює для виконуваних скриптів.Ці змінні оточення можна використовувати для отримання контекстної інформації про запущений процес.

Це змінні оточення, створені pnpm:

  • npm_command — містить назву команди. Якщо виконуваною командою будеpnpm run, то значенням цієї змінної буде "run-script".

Параметри

Будь-які параметри командиrun слід вказувати перед назвою скрипта.Параметри, перелічені після імені скрипта, передаються до виконуваного скрипта.

Усе це запускатиме pnpm CLI з параметром--silent:

pnpm run --silent watch
pnpm --silent run watch
pnpm --silent watch

Будь-які аргументи після імені команди додаються до виконуваного скрипта.Отже, якщоwatch виконуєwebpack --watch, то ця команда:

pnpm run watch --no-color

запустить:

webpack --watch --no-color

--recursive, -r

Це запускає будь-яку команду з обʼєкта "scripts" кожного пакунка.Якщо пакунок не має команди, він пропускається.Якщо жоден з пакунків не має команди, команда не буде виконана.

--if-present

Ви можете використовувати прапорець--if-present, щоб уникнути виходу з ненульовим кодом завершення коли скрипт не визначено. Це дозволяє запускати потенційно невизначені скрипти без переривання ланцюжка виконання.

--parallel

Повністю ігнорувати паралелізм і топологічне сортування, запускаючи заданий скрипт одразу в усіх пакунках з префіксованим потоковим виводом. Цей прапорець бажано встановлювати для довготривалих процесів з багатьма пакунками, наприклад, для тривалого процесу збирання.

--stream

Транслювати вивід з дочірніх процесів негайно з префіксом початкової теки пакунка. Це дозволяє чергувати вивід з різних пакунків.

--aggregate-output

Обʼєднувати вивід з дочірніх процесів, які виконуються паралельно, і виводити вивід лише після завершення дочірнього процесу. Це значно полегшує читання великих журналів після запускуpnpm -r <command> з--parallel або з--workspace-concurrency=<number> (особливо в CI). Підтримується лише--reporter=append-only.

--resume-from &lt;package_name>

Поновити виконання з конкретного проєкту. Це може бути корисним, якщо ви працюєте з великим робочим простором і бажаєте перезапустити збірку з певного проєкту без проходження всіх проєктів які йому передують у процесі збирання.

--report-summary

Записати результат виконання скриптів у файлpnpm-exec-summary.json.

Приклад файлуpnpm-exec-summary.json:

{
"executionStatus":{
"/Users/zoltan/src/pnpm/pnpm/cli/command":{
"status":"passed",
"duration":1861.143042
},
"/Users/zoltan/src/pnpm/pnpm/cli/common-cli-options-help":{
"status":"passed",
"duration":1865.914958
}
}

Можливі значенняstatus такі: 'passed', 'queued', 'running'.

--reporter-hide-prefix

Приховати префікс робочого простору від виводу дочірніх процесів, що виконуються паралельно, і виводити тільки необроблений вивід. Це може бути корисно, якщо ви працюєте з CI, і вивід має бути у певному форматі без будь-яких префіксів (наприклад,GitHub Actions annotations). Підтримується лише--reporter=append-only.

--filter &lt;package_selector>

Читайте більше про фільтрування.

Параметри .npmrc

enable-pre-post-scripts

  • Стандартно:true
  • Тип:Boolean

Якщоtrue, pnpm автоматично виконуватиме будь-які пре/пост-скрипти. Отже, виконанняpnpm foo буде подібне до виконанняpnpm prefoo && pnpm foo && pnpm postfoo.

script-shell

  • Стандартно:null
  • Тип:path

Оболонка для запуску скриптів за допомогою командиpnpm run.

Наприклад, щоб примусово використовувати Git Bash у Windows:

pnpm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

shell-emulator

  • Стандартно:false
  • Тип:Boolean

Якщоtrue, pnpm використовуватиме JavaScript-реалізаціюbash-подібної оболонки для виконання скриптів.

Цей параметр спрощує написання крос-платформних скриптів. Наприклад, стандартно наступний скрипт не працюватиме в системах, не сумісних з POSIX:

"scripts":{
"test":"NODE_ENV=test node test.js"
}

Але якщо для параметраshell-emulator встановлено значенняtrue, він працюватиме на всіх платформах.


[8]ページ先頭

©2009-2025 Movatter.jp