TGViewer
Веб-страница Веб-страница @tproger_web · 22.5K subscribers
Post #6431 2.01K
pnpm закрыл глобальную подмену реестра через файл проекта

pnpm — пакетный менеджер для JavaScript и TypeScript с общим хранилищем пакетов на диске и строгим деревом зависимостей. В версии 12.1.0 он перестал принимать настройку scope из pnpm-workspace.yaml: закоммиченный в репозиторий файл через неё дотягивался до глобальной конфигурации разработчика.

Цепочка срабатывала на обычном pnpm login. Репозиторий держал в pnpm-workspace.yaml строку вида scope: acme, логин подхватывал её наравне с флагом --scope и дописывал маршрут @acme:registry в машинно-глобальный auth.ini — файл вне репозитория, который pnpm считает доверенным источником и который перебивает ~/.npmrc в каждом проекте на машине. В выводе команды при этом было видно только Logged in on https://registry.npmjs.org/, про scope ни слова. Дальше пакеты @acme/* резолвились с записанного реестра и в проектах, к тому репозиторию отношения не имеющих.

Теперь такой scope игнорируется, а pnpm подсказывает, где его задавать: флагом --scope, переменной PNPM_CONFIG_SCOPE или в глобальном конфиге. Поведение унаследовано от npm CLI и повторяется в pacquet, поэтому в трекере это завели обычной задачей на укрепление, без security-advisory.

Оговорка про версии: 12.1.0 и 11.25.0 вышли 29 августа под тегами next-12 и next-11, а latest на 30 августа всё ещё показывает на 11.24.0. Проверить pnpm-workspace.yaml в своих и чужих репозиториях на строку scope и заглянуть в глобальный auth.ini на лишние маршруты можно уже сейчас.
  • ❤ 2
More from @tproger_web
  1. Sep 20, 2026Как проверять CSS после рефакторинга с ИИ Пять ИИ-инструментов получили HTML и CSS карточк…
  2. Sep 20, 2026Как защитить списание кредитов в Django от гонки запросов У аккаунта один кредит. Два запр…
  3. Sep 20, 2026Как анимировать перестройку CSS Grid без JavaScript В разборе приёма содержимое каждой пли…
  4. Sep 19, 2026Как защитить API от повторной оплаты Клиент не получил ответ и повторил POST. Сервер мог у…
  5. Sep 19, 2026Как заблокировать отрисовку JavaScript, не останавливая HTML-парсер Когда компоненту нужно…
  6. Sep 19, 2026Почему box-shadow не заменяет outline для фокуса CSS-тень даёт больше свободы в оформлении…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →