Summary
create-prisma has no way to generate a project without installing dependencies. prisma orm init has --skip-install; create-prisma rejects it:
$ npm create prisma@latest -- nest-ref --template nest --provider postgres --yes --skip-install
ERROR
Unrecognized flag: --skip-install in command create-prisma
(create-prisma@0.13.1, npm 11.6.2, Node 24.11.1, macOS.)
Why it matters
- Inspecting a template. I wanted to compare what
--template nest emits against a hand-wired NestJS 12 project. That needs the files, not node_modules. A full install of the nest template pulls in @prisma/composer, alchemy, tsdown and friends, which takes minutes on a cold cache for something I was going to delete.
- Agents and CI. The CLI already advertises itself as agent-friendly (
--yes, --json). Agents typically generate first and install once, after they have edited package.json (for example to add @nestjs/cli, or to pin a different @prisma/orm-postgres rc). Today that means "install, edit, install again".
- Offline / monorepo scaffolding. In a pnpm or turborepo workspace, the install has to run from the workspace root anyway; the nested install
create-prisma performs is wasted and can leave a stray lockfile.
--json implies deploy. The help text says --json "deploys unless --no-deploy", so the only non-interactive mode does more work by default, not less. A --skip-install flag is the natural counterpart.
Proposal
Add --skip-install (matching the prisma orm init flag name so the two CLIs read the same):
--skip-install Write the project files but do not install dependencies
(also skips the initial `prisma contract emit`, which needs them)
Behaviour:
- Scaffold all files exactly as today, including
package.json.
- Skip the package-manager install step and the post-install steps that need
node_modules (prisma contract emit, prisma db init, skills sync).
- Print the commands the user needs to run next, and include them in the
--json result as nextActions, the same way prisma orm init does:
{
"ok": true,
"packagesInstalled": { "status": "skipped" },
"contractEmitted": false,
"nextActions": [
{ "kind": "run-command", "command": "npm install" },
{ "kind": "run-command", "command": "npx prisma contract emit" }
]
}
--skip-install with --deploy should be an error (deploy needs a build).
Alternatives
--package-manager none: less discoverable and does not express intent.
- Generating into a temp dir and killing the process during install: what I actually did, which is not great.
Summary
create-prismahas no way to generate a project without installing dependencies.prisma orm inithas--skip-install;create-prismarejects it:(
create-prisma@0.13.1, npm 11.6.2, Node 24.11.1, macOS.)Why it matters
--template nestemits against a hand-wired NestJS 12 project. That needs the files, notnode_modules. A full install of the nest template pulls in@prisma/composer,alchemy,tsdownand friends, which takes minutes on a cold cache for something I was going to delete.--yes,--json). Agents typically generate first and install once, after they have editedpackage.json(for example to add@nestjs/cli, or to pin a different@prisma/orm-postgresrc). Today that means "install, edit, install again".create-prismaperforms is wasted and can leave a stray lockfile.--jsonimplies deploy. The help text says--json"deploys unless --no-deploy", so the only non-interactive mode does more work by default, not less. A--skip-installflag is the natural counterpart.Proposal
Add
--skip-install(matching theprisma orm initflag name so the two CLIs read the same):Behaviour:
package.json.node_modules(prisma contract emit,prisma db init, skills sync).--jsonresult asnextActions, the same wayprisma orm initdoes:{ "ok": true, "packagesInstalled": { "status": "skipped" }, "contractEmitted": false, "nextActions": [ { "kind": "run-command", "command": "npm install" }, { "kind": "run-command", "command": "npx prisma contract emit" } ] }--skip-installwith--deployshould be an error (deploy needs a build).Alternatives
--package-manager none: less discoverable and does not express intent.