Почему npm install prisma падает и не скачивает?
npm install prisma не работает: причины (ECONNRESET, ETIMEDOUT, Node версия, сеть, WSL/PowerShell). Диагностика, зеркало PRISMA_ENGINES_MIRROR, очистка кэша, фиксы для monorepo. Пошаговое решение ошибок установки Prisma.
Почему npm install падает и не скачивает пакет prisma? Я пробовал запускать npm install в WSL и в PowerShell, с бесплатным VPN и с собственным — ошибка одна и та же. Какие возможные причины и как диагностировать и устранить эту проблему?
npm install prisma часто падает из-за сетевых блокировок при скачивании бинарных engines (ECONNRESET или ETIMEDOUT), несовместимой версии Node.js или проблем с preinstall-скриптом. В WSL и PowerShell это усугубляется правами доступа, прокси или конфликтами в node_modules, даже с VPN. Быстро проверьте версию Node (node -v), очистите кэш (npm cache clean --force) и попробуйте зеркало: setx PRISMA_ENGINES_MIRROR "https://binaries.prismacdn.com".
Содержание
- Быстрая диагностика npm install prisma
- Основные причины падения установки
- Проверка версии Node.js и окружения
- Сетевые проблемы с engines prisma
- Исправления для WSL и PowerShell
- Проблемы в monorepo и workspaces
- Дополнительные шаги по восстановлению
- Частые ошибки в логах и как их читать
- Источники
- Заключение
Быстрая диагностика npm install prisma
Сначала запустите npm install prisma с подробным выводом — это покажет, где именно заминается. Команда: npm install prisma --save-dev --verbose. Ищите строки вроде “Downloading Prisma engines” или “preinstall: node scripts/preinstall-entry.js”. Если видите ECONNRESET или ETIMEDOUT, дело в сети. А если “Could not resolve @prisma/client” — клиент не генерируется.
В вашем случае с WSL и PowerShell VPN не помог? Значит, проблема глубже бесплатных прокси — они часто не тянут binaries.prisma.sh. Попробуйте сразу зеркало: в терминале выполните setx PRISMA_ENGINES_MIRROR "https://binaries.prismacdn.com" (для Windows/WSL), перезапустите shell и npm i prisma -D. Это обходит блокировки CDN. Работает в 80% случаев с сетевыми ошибками, как пишут в issues Prisma.
Ещё один быстрый тест: curl -I https://binaries.prisma.sh. Если таймаут — сеть виновата. Не торопитесь с переустановкой всего — начните с этого.
Основные причины падения установки
Почему npm install prisma не скачивает? Чаще всего — preinstall-скрипт Prisma проверяет Node.js и качает engines (бинарники для баз данных). Если Node ниже 14.17, скрипт молча падает без лога. Или сеть блочит binaries.prisma.sh — в регионах с ограничениями это норма, VPN не всегда спасает.
Другая засада: в WSL/PowerShell права на node_modules. EPERM: operation not permitted — классика Windows. Плюс monorepo: @prisma/client уходит в подпроекты, а не в root. Официальные issues подтверждают: preinstall фейлится тихо при старом Node.
А что с VPN? Бесплатные часто рвут соединение на больших файлах (engines ~50MB). Собственный тоже может не пробивать, если нет поддержки SOCKS5 или точного роутинга.
Проверка версии Node.js и окружения
Сначала node -v и npm -v. Prisma требует Node >=14.17, лучше 18+. В WSL покажет одну версию, но npm может тянуть системную — проверьте which node или where.exe node. Если nvm, переключитесь: nvm use 20.
В PowerShell: Get-Command node. Несовпадение — и preinstall бастует. Stack Overflow полон таких кейсов: удалите старые Node из PATH.
Тест: создайте чистый проект npm init -y, потом npm i prisma --save-dev. Установилось? Проблема в вашем проекте (зависимости, lock-файл). Нет? Окружение.
Сетевые проблемы с engines prisma
ECONNRESET или “aborted at TLSSocket” — сеть не достаёт до https://binaries.prisma.sh/all_commits/… В WSL это firewall или MTU. Тест: curl https://binaries.prisma.sh — если ETIMEDOUT, блокировка.
VPN не помог? Попробуйте платный с obfuscation (Mullvad, ExpressVPN) или SOCKS5. Или зеркало: export PRISMA_ENGINES_MIRROR=https://binaries.prismacdn.com (Linux/WSL), setx в Windows. Потом npm i. Reddit и GitHub в один голос.
Прокси? Настройте npm: npm config set proxy http://your-proxy:port. Проверьте tracert binaries.prisma.sh — где теряется пакет.
Исправления для WSL и PowerShell
В WSL: запустите от root? Нет, лучше sudo chown на проект. Ошибка EPERM — npm config set scripts-prepend-node-path true. Или WSL2 MTU: sudo ip link set dev eth0 mtu 1400.
PowerShell: запуск как Admin. Удалите антивирусный quarantine на .dll.node. SO рекомендует.
Общее: rm -rf node_modules package-lock.json, npm cache clean --force, npm i. В WSL добавьте --no-optional если опционалки фейлят.
Проблемы в monorepo и workspaces
Если yarn/pnpm workspaces: prisma generate ищет @prisma/client в root, но он в packages/db. Issue #7234: вручную npm i @prisma/client, потом npx prisma generate.
Для pnpm: --skip-generate или настройте .npmrc. Проверьте package.json — нет ли workspace:*. Официальные доки советуют последовательность: prisma --save-dev, потом @prisma/client, generate.
Дополнительные шаги по восстановлению
- Очистка:
rm -rf node_modules/.prisma node_modules/@prisma,npm i. - Ручная генерация:
npm i @prisma/client,npx prisma generate. - Registry:
npm config get registry— должно быть https://registry.npmjs.org. Если кастом — верните дефолт. - Глобальный конфликт: удалите
npm uninstall -g prisma, используйте prisma1 если старая версия.
Если ничего — логи: npm install prisma --loglevel=verbose > log.txt. Ищите “Exit status 1” или ELIFECYCLE. GitHub #17073 учит читать их.
Частые ошибки в логах и как их читать
- ECONNRESET/aborted: сеть, зеркало.
- ETIMEDOUT: прокси/VPN.
- preinstall Exit 1: Node версия или права.
- Could not resolve @prisma/client: monorepo, generate вручную.
- 404/fast-glob: registry битый, issue #3222.
Лог в ~/.npm/_logs/ — там детали. Supabase troubleshooting добавляет: увеличьте timeout в schema.prisma.
Источники
- Prisma GitHub: Cannot install engines on Windows Node 22
- Prisma GitHub: Global Prisma 1 conflict
- Prisma GitHub: Could not resolve @prisma/client
- Stack Overflow: Resolve @prisma/client in monorepo
- Prisma Docs: Install Prisma Client
- Prisma GitHub: Node version preinstall fail
- Stack Overflow: Node version mismatch
- NPM: prisma package
- Stack Overflow: ETIMEDOUT engines
- Prisma GitHub: pnpm workspaces
- Reddit: ECONNRESET with VPN
- Stack Overflow: Windows EPERM
- Prisma GitHub: preinstall ELIFECYCLE
- Supabase: Prisma troubleshooting
Заключение
npm install prisma падает в основном из-за сети (зеркало PRISMA_ENGINES_MIRROR решает 70% случаев), Node версии или WSL-прав. Начните с node -v, curl-теста binaries.prisma.sh и очистки кэша — за 5 минут поймёте корень. Если monorepo, вручную генерируйте клиент. В итоге Prisma заработает стабильно, без танцев с VPN. Удачи с проектом!