Фильтрация
Фильтрация позволяет ограничить команды определенными подмножествами пакетов.
pnpm поддерживает расширенный синтаксис селектора для выбора пакетов по имени или по отношению.
Селекторы могут быть указаны с помощью флага --filter
(или -F
):
pnpm --filter <package_selector> <command>
Соответствие
--filter <селектор пакета>
Чтобы выбрать конкретный пакет, просто укажите его имя (@scope/pkg
) или используйте шаблон для выбора набора пакетов (@scope/*
).
Примеры:
pnpm --filter "@babel/core" test
pnpm --filter "@babel/*" test
pnpm --filter "*core" test
Указание области действия пакета не является обязательным, поэтому --filter=core
выберет @babel/core
, если core
не найден. Однако, если в рабочей области есть несколько пакетов с одинаковыми именами (например, @babel/core
и @types/core
), фильтрация без области ничего не выберет.
--filter <селектор пакета>...
Чтобы выбрать пакет и его зависимости (прямые и непрямые), добавьте к имени пакета многоточие: <package_name>...
. Например, следующая команда запустит тесты foo
и всех его зависимостей:
pnpm --filter foo... test
Вы можете использовать шаблон для выбора набора корневых пакетов:
pnpm --filter "@babel/preset-*..." test
--filter <селектор пакета>^...
Чтобы выбрать ТОЛЬКО зависимости пакета (как прямые, так и непрямые), добавьте к имени вышеупомянутое многоточие, которому предшествует шеврон. Например, следующая команда запустит тесты foo
и всех его зависимостей:
pnpm --filter "foo^..." test
--filter ...<селектор пакета>
Чтобы выбрать пакет и его зависимые пакеты (прямые и непрямые), добавьте к имени пакета префикс с многоточием: ...<package_name>
. Например, это запустит тесты foo
всех зависимых от него пакетов:
pnpm --filter ...foo test