Skip to content

Add --skip-install (parity with prisma orm init --skip-install): no way to scaffold files without installing dependencies #107

Description

@ankur-arch

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:

  1. Scaffold all files exactly as today, including package.json.
  2. Skip the package-manager install step and the post-install steps that need node_modules (prisma contract emit, prisma db init, skills sync).
  3. 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" }
  ]
}
  1. --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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions