CLI tool to migrate React applications to newer versions (17, 18, 19).

Remarks

This tool analyzes your React project, updates dependencies, transforms code, and provides a migration report.

Constructors

Properties

targetVersion: string = '18'

The target React version for migration.

projectRoot: string = ...

The root directory of the project being migrated.

issues: string[] = []

List of issues found during migration.

fixes: string[] = []

List of fixes applied during migration.

reactFiles: string[] = []

React files found in the project.

options: MigrationOptions = {}

Migration options.

backupInfo?: BackupInfo

Backup information.

Methods

  • Starts the migration process.

    Parameters

    • targetVersion: string

      The React version to migrate to.

    • Optional projectPath: string

      The path to the React project.

    • options: MigrationOptions = {}

      Migration options.

    Returns Promise<void>

  • Creates a backup of the project before migration.

    Returns Promise<void>

  • Rolls back to a specific backup.

    Parameters

    • backupId: string

      The backup ID to rollback to.

    Returns Promise<void>

  • Lists available backups.

    Returns BackupInfo[]

  • Analyzes the project structure and finds React files.

    Returns Promise<void>

  • Finds React files in the project.

    Returns void

  • Recursively gets React files from a directory.

    Parameters

    • dir: string

      The directory to search.

    Returns string[]

    Array of React file paths.

  • Updates dependencies in package.json.

    Returns Promise<void>

  • Analyzes peer dependencies for potential conflicts.

    Parameters

    • packageJson: any

      The package.json object.

    Returns Promise<void>

  • Gets React-related packages with version mappings.

    Returns Record<string, string>

    Object mapping package names to versions.

  • Transforms React code files.

    Returns Promise<void>

  • Transforms a single React file.

    Parameters

    • filePath: string

      Path to the file to transform.

    Returns Promise<void>

  • Transforms ReactDOM.render to createRoot API.

    Parameters

    • content: string

      File content to transform.

    • fileName: string

      Name of the file being transformed.

    Returns string

    Transformed content.

  • Transforms deprecated lifecycle methods.

    Parameters

    • content: string

      File content to transform.

    • fileName: string

      Name of the file being transformed.

    Returns string

    Transformed content.

  • Transforms event handlers for React 17+.

    Parameters

    • content: string

      File content to transform.

    • fileName: string

      Name of the file being transformed.

    Returns string

    Transformed content.

  • Transforms PropTypes imports.

    Parameters

    • content: string

      File content to transform.

    • fileName: string

      Name of the file being transformed.

    Returns string

    Transformed content.

  • Transforms React.FC usage.

    Parameters

    • content: string

      File content to transform.

    • fileName: string

      Name of the file being transformed.

    Returns string

    Transformed content.

  • Transforms simple class components to functional components.

    Parameters

    • content: string

      File content to transform.

    • fileName: string

      Name of the file being transformed.

    Returns string

    Transformed content.

  • Updates configuration files.

    Returns Promise<void>

  • Updates TypeScript configuration.

    Parameters

    • tsConfigPath: string

      Path to tsconfig.json.

    Returns void

  • Updates Jest configuration.

    Parameters

    • jestConfigPath: string

      Path to jest.config.js.

    Returns void

  • Updates ESLint configuration.

    Parameters

    • eslintConfigPath: string

      Path to .eslintrc.js.

    Returns void

  • Checks Babel configuration.

    Returns void

  • Checks Webpack configuration.

    Returns void

  • Generates the migration report.

    Returns void

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string

  • Returns string