pnpm run
Алиасы: run-script
Запускает скрипт, определенный в файле манифеста пакета.
Пример ы
Допустим, у вас есть сценарий watch, настроенный в файле package.json, например:
"scripts": {
"watch": "webpack --watch"
}
Теперь вы можете запустить этот сценарий с помощью pnpm run watch! Просто, правда? Для тех, кто любит сохранять нажатия клавиш и время, хорошая новость: все сценарии получают алиас в виде команд pnpm, поэтому, в конечном счете, pnpm watch - это всего лишь краткая запись для pnpm run watch (ТОЛЬКО для сценариев, которые не используют то же имя, что и уже существующие команды pnpm).
Running multiple scripts
You may run multiple scripts at the same time by using a regex instead of the script name.
pnpm run "/<regex>/"
Run all scripts that start with watch::
pnpm run "/^watch:.*/"
Подробности
В дополнение к уже существующим в окружении PATH, pnpm run содержит node_modules/.bin в PATH, предоставляемом сценариям. Это значит, до тех пор, пока у вас установлен пакет, вы можете использовать его в скрипте, как обычную команду. Например, если у вас установлен eslint, вы можете создать такой сценарий:
"lint": "eslint src --fix"
И, хотя в вашей оболочке не установлен eslint, он будет работать.
Для рабочих областей, <workspace root>/node_modules/.bin также добавляется в PATH, поэтому если инструмент установлен в корне рабочей области, он может называться в сценариях любого пакета.
Отличия от npm run
По умолчанию pnpm не запускает произвольные хуки pre и post для скриптов определенных пользователем (например, prestart). Это поведение, унаследованное от 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.
Окружение
Есть некоторые переменные окружения, которые 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