Выбор ответа Middle Пакеты и зависимости обновлено
Скрипты зависимостей в pnpm 10
Вопрос
После перехода на pnpm 10 у пакета с нативной сборкой не выполнился postinstall, и он не работает. Почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: pnpm 10 не запускает скрипты зависимостей без явного разрешения. Скрипты установки это частый путь атак через цепочку поставок: вредоносная версия пакета исполняет код на машине разработчика и в CI.
Варианты ответа
- pnpm вообще не поддерживает нативные модули с node-gyp
- pnpm 10 не запускает скрипты зависимостей без явного разрешенияправильный ответ
- Нужно удалить
pnpm-lock.yamlи установить заново postinstallвыполняется только вnpm ci, а pnpm его пропускает всегда
Разбор
Скрипты установки это частый путь атак через цепочку поставок: вредоносная версия пакета исполняет код на машине разработчика и в CI. Поэтому pnpm 10 по умолчанию их не запускает, а список доверенных пакетов хранится в конфигурации проекта.
- Нативные модули в pnpm работают, им просто нужно разрешение на сборку.
- Удаление lock-файла ничего не даст и сломает воспроизводимость.
postinstallсвоего проекта и разрешённых пакетов выполняется и вpnpm install.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.