DevFlow

Configuration

How DevFlow detects your package manager, TypeScript, React, Next.js, Vue or NestJS stack and monorepo layout, and which flags override it.

Project Detection

DevFlow reads your project structure to build a ProjectContext — used by every module to generate appropriate configs.

Package Manager

Detection priority:

  1. CLI flag — --pm pnpm always wins
  2. Lock file — pnpm-lock.yaml → pnpm, yarn.lock → yarn, bun.lockb → bun, package-lock.json → npm
  3. packageManager field — in package.json (e.g., "packageManager": "pnpm@9.0.0")
  4. Default — npm

TypeScript

Detected by presence of tsconfig.json in the project root. When TypeScript is detected:

  • ESLint adds typescript-eslint
  • Vitest/Jest include TypeScript support
  • CI workflows add a typecheck step

Stack Detection

DevFlow inspects dependencies and devDependencies in package.json:

DependencyDetected Stack
nextNext.js
nuxtNuxt
@nestjs/coreNestJS
reactReact
vueVue
@sveltejs/kitSvelteKit
(none of the above)Node.js

Monorepo Detection

File/FieldMonorepo Tool
nx.jsonNx
turbo.jsonTurborepo
pnpm-workspace.yamlCustom (pnpm workspaces)
package.json → workspaces[]Custom (npm/yarn workspaces)

Overriding Detection

You can override any detected value via CLI flags:

# Force package manager
devflow --pm pnpm

# Force CI provider
devflow --ci gitlab

Existing Config Handling

DevFlow is idempotent. Every module's detect() method checks for existing configurations:

  • If a config file already exists (e.g., eslint.config.mjs), the file is left untouched — every create-file action is skip-if-exists
  • The wizard shows the detected modules, and the file is never overwritten on a re-run
  • File creation actions use skipIfExists: true by default, and package.json is merged rather than replaced

On this page