TGViewer
Deep Digital Deep Digital @deepdigital · 1.06K subscribers
Post #274 660
Всем привет!

Сегодня расскажем об опыте миграции с npm на pnpm на одном из проектов и преимуществах такого решения.

pnpm отличается от пакетных менеджеров npm и yarn двумя ключевыми преимуществами — скоростью работы и безопасностью.

⚫Скорость установки пакетов с pnpm значительно выше, чем в npm и yarn. Это достигается за счет использования специальных hard links, с помощью которых один и тот же npm-пакет не копируется многократно, а извлекается из кэша, если он был ранее загружен. Также pnpm способен устанавливать несколько пакетов параллельно, что отражается на скорости установки.

⚫Безопасность работы обеспечивается за счет специального алгоритма, при котором создается файл с контрольными суммами всех установленных пакетов, и каждый npm-пакет перед выполнением кода проверяется на предмет целостности.

Проект должен был работать в docker-окружении, поэтому задачу с внедрением pnpm с помощью docker мы решили следующим образом:

✅ Собрали образ с помощью Dockerfile. За основу взяли Node.js 18 версию alpine

FROM node:18.16-alpine3.18

# Install pnpm
RUN apk add curl \
&& curl -fsSL "https://github.com/pnpm/pnpm/releases/download/v8.6.1/pnpm-linuxstatic-x64" -o /bin/pnpm; chmod +x /bin/pnpm;

✅ Собрали образ с именем Node.js:18-pnpm-8.6.1, который загрузили в свой gitlab registry

✅ Подготовили docker-compose файл для запуска frontend-приложения

services:
# Nextjs applicaton container
app:
image: gitlab.com/images/nodejs:18-pnpm-8.6.1
logging:
driver: 'json-file'
options:
max-file: '2'
max-size: '5m'
container_name: app
restart: always
environment:
PORT: 3000
HOST_URL: "${HOST_URL}"
command: [ "pnpm", "start" ]
working_dir: "/app"
volumes:
- ./../../src:/app:rw
networks:
- network_name

Пакетный менеджер pnpm может быть особенно полезен разработчикам JavaScript или TypeScript проектов. В нашем случае его использование помогло значительно ускорить установку пакетов и обеспечить безопасность выполнения кода.
  • 👍 22
  • ⚡ 7
  • ❤ 3
  • 🔥 2
  • 👏 1
  • 🤯 1
More from @deepdigital
  1. May 19, 2026Как расти в непростом рынке, масштабировать группу компаний и не терять фокус на клиентах?…
  2. Dec 26, 2025⚡️Подвели итоги 2025 года Chulakov Group Записали подкаст с Олегом Чулаковым — основателем…
  3. Dec 8, 2025Победы на Tagline Awards 2025 🏆 Снова громко напомнили, зачем делаем дизайн — чтобы созда…
  4. Jun 9, 2025Chulakov ⨉ ИТМО 💥 Мы снова в одном из крупнейших IT-вузов России. Альберт Рыбалко, руково…
  5. Jun 6, 2025🏆 Chulakov — № 1 в дизайне по всем рейтингам Безоговорочный лидер по версии крупнейших ан…
  6. May 6, 2025🙌 Вспоминаем, как насыщенно провели время на IT-конференции Merge Были рады стать партнер…
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 →