Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 1.97 KB

File metadata and controls

43 lines (30 loc) · 1.97 KB

This package detects the framework, bundler, and library used by a project, and scaffolds the initial cypress.config.js and support files when a user configures Cypress for the first time via the Launchpad UI.

Key Commands

# Build all outputs (CJS, ESM, browser)
yarn workspace @packages/scaffold-config build

# Run a specific test file
yarn workspace @packages/scaffold-config test -- <path-to-spec>

# Run tests matching a glob pattern
yarn workspace @packages/scaffold-config test -- "<glob-pattern>"

# Type-check
yarn workspace @packages/scaffold-config check-ts

Architecture

  • src/detect.ts — Auto-detection logic for frameworks and bundlers installed in the user's project
  • src/frameworks.ts — Registry of supported frameworks (React, Vue, Angular, Svelte, Next.js, etc.)
  • src/dependencies.ts — Dependency definitions and version requirements for each integration
  • src/commandFile.ts — Logic for generating cypress.config.js command files
  • src/supportFile.ts — Logic for generating support file scaffolding
  • src/component-index-template.ts — Template for the component index HTML file
  • src/ct-detect-third-party.ts — Detection for third-party CT framework plugins

Gotchas / Notes

  • The browser/dependencies output is NOT used in the production binary; it exists for internal testing purposes only.
  • The ESM build is compiled but not currently consumed; production usage is CJS only.
  • When adding a new framework, you must also add a <name>-configured and <name>-unconfigured system-test project and wire it into component_testing_spec.ts.
  • New dependencies must be declared in src/constants.ts with descriptions.

Integration Points

  • Consumed by @packages/data-context and @packages/launchpad to drive the configuration wizard UI.
  • System-test projects in system-tests/projects/ exercise the scaffolding end-to-end.

Auto-Generated Files

  • cjs/, esm/, browser/ — Generated by tsc; do not edit by hand.