Fast, disk space efficient package manager (by pnpm)

Pnpm Alternatives

Similar projects and alternatives to pnpm

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better pnpm alternative or higher similarity.

pnpm reviews and mentions

Posts with mentions or reviews of pnpm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-04.
  • Effective nodejs version management for the busy developer
    3 projects | | 4 Feb 2024
    I also recommend using pnpm as a package manager, it's faster and more efficient than npm or yarn with great capabilities concerning monorepo setup. On recent nodejs versions (v16.13+), you can install it easily with:
  • .dockerignore being ignored by docker-compose? no space left on device
    3 projects | /r/docker | 5 Dec 2023
    FROM node:21-alpine AS base FROM base AS builder Check to understand why libc6-compat might be needed. RUN apk add --no-cache libc6-compat RUN apk update Set working directory WORKDIR /app Install pnpm with corepack RUN corepack enable && corepack prepare pnpm@latest --activate Enable pnpm add --global on Alpine Linux by setting home location environment variable to a location already in $PATH ENV PNPM_HOME=/usr/local/bin RUN pnpm install turbo --global COPY . . RUN turbo prune web --docker Add lockfile and package.json's of isolated subworkspace FROM base AS installer RUN apk add --no-cache libc6-compat RUN apk update WORKDIR /app First install the dependencies (as they change less often) COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . COPY --from=builder /app/out/pnpm-workspace.yaml ./pnpm-workspace.yaml COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml RUN pnpm install Build the project COPY --from=builder /app/out/full/ . RUN pnpm turbo run build --filter=web FROM base AS runner WORKDIR /app Don't run production as root RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs USER nextjs COPY --from=installer /app/apps/web/next.config.js . COPY --from=installer /app/apps/web/package.json . Automatically leverage output traces to reduce image size COPY --from=installer --chown=nextjs:nodejs /app/apps/web/.next/standalone ./ COPY --from=installer --chown=nextjs:nodejs /app/apps/web/.next/static ./apps/web/.next/static COPY --from=installer --chown=nextjs:nodejs /app/apps/web/public ./apps/web/public CMD node apps/web/server.js
  • NPMprune: Remove unnecessary files from node_modules to optimize storage
    3 projects | | 29 Nov 2023
    I use whenever possible. It has many benefits, the main one is that the node modules are symlinked to one big repo in your home directory, so there isn’t nearly as much duplication.
  • how to manage node modules in every proj?
    2 projects | /r/learnprogramming | 10 Nov 2023
    Also maybe try which aparently does linking or something for you, havent used it.
  • Yarn 4.0
    10 projects | | 23 Oct 2023
    │ └── tsconfig.json

    Whenever pnpm installs workspace dependencies, it installs them at the root of the workspace, (in the tore inside the docker build image of course, not on the host), and those are the dependencies for all 3 packages all together in one virtual store, here:


    So, when I want to create my container image for say packages/app1, I don't see how I could copy only my dependencies for that app from the build image like this:

    COPY --from=deps /app/packages/app2/node_modules/ /app/packages/app2/node_modules

    Because while of course the dependencies are installed in the build image, they are at the root of the workspace in virtual store there, and not in /app/packages/app2/node_modules/ – this directory only contains symlinks to the root virtual store.

    Of course I can copy all the dependencies from the root virtual store of the build image into my image, but then those are the dependencies for ALL packages in the workspace, not just for app1

    I suppose I could try to install only the dependencies for app1, but this is broken with the default pnpm settings at the moment (it still installs dependencies for everything in the workspace)

  • Building a Minimalist Docker Image with Node, TypeScript
    4 projects | | 5 Sep 2023
    FROM node:18.16.0-alpine RUN apk add \ curl \ git \ && rm -rf /var/cache/* \ && mkdir /var/cache/apk RUN mkdir -p /app WORKDIR /app RUN mkdir -p /bin && curl -fsSL "" -o /bin/pnpm; chmod +x /bin/pnpm; ENV PATH /app/node_modules/.bin:$PATH ADD package.json pnpm-lock.yaml .npmrc /app/ RUN pnpm install ADD . /app RUN pnpm run build EXPOSE 5000 CMD [ "pnpm", "start" ]
  • Lockfile merge conflicts, how to handle it correctly?
    3 projects | | 14 Jul 2023
    The conflict resolution algorithm for pnpm is maintained by the @pnpm/merge-lockfile-changes project.
  • Releasing - an LLM local playground with minimal setup
    6 projects | /r/LocalLLaMA | 5 Jun 2023
    What version of pnpm are you using? I found this issue, maybe it's related?
  • Why is PNPM not supported in Expo app?
    2 projects | /r/expo | 13 May 2023
    Please check here and here
  • Can cargo caching be changed?
    2 projects | /r/rust | 8 May 2023
    I had been using for some web projects and it's really fast due it caches all dependencies so different projects use the same cached dependency, this results in really fast build times.
  • A note from our sponsor - SurveyJS | 1 Mar 2024
    With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more →


Basic pnpm repo stats
5 days ago

pnpm/pnpm is an open source project licensed under MIT License which is an OSI approved license.

The primary programming language of pnpm is TypeScript.

The modern identity platform for B2B SaaS
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.