Dentolize · Prisma CLI Devdependency Move Walkthrough

Glossary

dependencies vs devDependencies Two sections of a package.json manifest. dependencies lists packages a program needs to actually run; devDependencies lists packages only needed while developing or building it (test runners, CLIs, linters). The distinction only changes install behavior when the install command is run with a --production-style flag, which skips devDependencies.

Prisma CLI (prisma package) The command-line tool for Prisma ORM: runs database migrations (prisma migrate), opens a visual database browser (prisma studio), pushes schema changes directly (prisma db push), and generates the client library. It is a development/operations tool, not something the running server imports or calls at runtime.

@prisma/client The generated database-access library the server actually imports and calls at runtime. Declared separately from the prisma CLI in packages/server/package.json, under dependencies, and unaffected by this PR.

Yarn workspaces Yarn's monorepo mode: multiple packages (packages/server, packages/prisma, etc.) share one root yarn.lock and one node_modules install. Under Yarn classic (v1), an install run without --production installs dependencies and devDependencies for every workspace touched, regardless of which section a package sits in.

Sandbox (preview environment) A disposable, per-branch deployment of Dentolize's Docker images ( server, whatsapp-official, plus supporting containers like postgres, redis, minio) used so reviewers can click through a real running instance of a branch before merging. Built fresh per branch; many can be active at once.

server-runtime-deps / whatsapp-runtime-deps Docker build stages (Dockerfile:288-308 and Dockerfile:336-346 respectively) that install each service's runtime node_modules before the final image is assembled. server-runtime-deps deliberately skips --production; whatsapp-runtime-deps uses it but never copies packages/server/package.json into its build context.

--production (yarn install flag) An install flag that, outside of the workspace-wide quirks described above, restricts installation to a package's dependencies, skipping devDependencies. This repo's server image build deliberately avoids it (see Dockerfile:303-306) due to reliability issues observed with Yarn 1 workspaces.

pro script packages/server/package.json's deploy script (git pull && yarn install && yarn run prisma:migrate:deploy && ...), run on a full-install deploy host — not inside a sandbox container. Always installs dev dependencies, so unaffected by this PR either way.