vercel/turborepo · warning

--skip-transforms conflicts with <package-manager>. The pack

Error message

--skip-transforms conflicts with <package-manager>. The package manager argument will be ignored.

What it means

create-turbo (npx create-turbo / pnpm create turbo) warns when a positional <package-manager> argument is combined with --skip-transforms. Transforms are what convert the chosen example to the requested package manager, so skipping them makes the manager argument meaningless; it is ignored and the example keeps its own package manager (the prompts layer may then also leave the selection unset).

Source

Thrown at packages/create-turbo/src/commands/create/index.ts:95

  let isMaintainedByCoreTeam = false;

  const { packageManager, skipInstall, skipTransforms, git } = opts;

  const availablePackageManagers = await getAvailablePackageManagers();

  const { root, projectName } = await prompts.directory({ dir: directory });
  const relativeProjectDir = path.relative(process.cwd(), root);
  const projectDirIsCurrentDir = relativeProjectDir === "";

  // selected package manager can be undefined if the user chooses to skip transforms
  const selectedPackageManagerDetails = await prompts.packageManager({
    manager: packageManager,
    skipTransforms
  });

  if (packageManager && opts.skipTransforms) {
    warn(
      "--skip-transforms conflicts with <package-manager>. The package manager argument will be ignored."
    );
  }

  const { example, examplePath } = opts;
  const exampleName = example && example !== "default" ? example : "basic";

  let projectData = {} as Awaited<ReturnType<typeof createProject>>;
  try {
    projectData = await createProject({
      appPath: root,
      example: exampleName,
      isDefaultExample: isDefaultExample(exampleName),
      examplePath
    });
  } catch (err) {
    handleErrors(err, opts.telemetry);
  }

View on GitHub (pinned to f9245100cf)

Solutions

  1. Drop --skip-transforms if you want the example converted to your package manager
  2. Drop the <package-manager> argument if you truly want the example untouched
  3. Add --skip-install when the example's own package manager is not installed locally

Example fix

# before
npx create-turbo@latest my-app --skip-transforms pnpm

# after: convert the example to pnpm
npx create-turbo@latest my-app pnpm
# or keep the example as-is:
npx create-turbo@latest my-app --skip-transforms --skip-install
Defensive patterns

Strategy: validation

Validate before calling

// Before spawning create-turbo, reject the contradictory combination
if (skipTransforms && positionalPackageManager) {
  throw new Error('pass either --skip-transforms or a <package-manager>, not both');
}

Prevention

When it happens

Trigger: Invoking create-turbo with both options, e.g. `npx create-turbo@latest my-app --skip-transforms pnpm` or `pnpm create turbo my-app --skip-transforms npm`, where opts.skipTransforms is truthy while packageManager is provided.

Common situations: Copy-pasted commands that accumulate flags over time; scripts that always pass a package manager plus a skip flag; misunderstanding that --skip-transforms preserves the example's own tooling.

Related errors


AI-assisted analysis of vercel/turborepo@f9245100cf (2026-08-17). Data as JSON: /api/errors/e07e9b6aa25bbea1. Report an issue: GitHub.