Skip to content

feature: PR 1/8 — React + Vite scaffolding alongside Angular - #698

Open
devin-ai-integration[bot] wants to merge 2 commits into
masterfrom
devin/react-migration-01-scaffolding
Open

feature: PR 1/8 — React + Vite scaffolding alongside Angular#698
devin-ai-integration[bot] wants to merge 2 commits into
masterfrom
devin/react-migration-01-scaffolding

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Aug 26, 2026

Copy link
Copy Markdown

Summary

First of 8 PRs migrating this Angular 9 HN PWA to React. This one only stands React up next to Angular — no Angular code, config, or dependency is touched, so nothing regresses.

  • vite.config.ts with root: 'src', so src/index.html, src/assets, src/manifest.json and src/favicon.ico resolve unchanged.
  • src/index.html gains only <div id="root"> next to <app-root>. The <script type="module" src="/main.tsx"> tag is not committed to the HTML — Angular CLI processes index.html and chokes on a .tsx module script — so a tiny Vite transformIndexHtml plugin injects it at dev/build time instead.
  • src/main.tsx mounts a placeholder App inside BrowserRouter; React sources live in src/react/ to avoid colliding with Angular's src/app/.
  • Angular scripts (start, build) are untouched; React gets dev, build:react, typecheck:react.

Angular is pinned to typescript@~3.7.5, which cannot parse modern react-router-dom type declarations. Rather than hand-writing a shim module (which would need extending in every later PR and would mask real type errors), a second compiler is installed side-by-side via an npm alias and used only for the React config:

"typescript": "~3.7.5",                    // Angular, unchanged
"typescript5": "npm:typescript@^5.6.0",    // React typecheck only
"typecheck:react": "node node_modules/typescript5/bin/tsc -p tsconfig.react.json --noEmit"

Verified: npx vite build and npm run typecheck:react both pass.

Note: npm run build (Angular) fails on Node 20 with error:0308010C:digital envelope routines::unsupported — a pre-existing Node/OpenSSL incompatibility of the Angular 9 Webpack toolchain, present on master before this branch and unaffected by it.

Devin-Org: engineering

Link to Devin session: https://app.devin.ai/sessions/e6419ebe67ff4f749fe1573a8e26cd07
Requested by: @abboudp


Note

Devin errored when opening this Pull Request as abboudp.
As a fallback, Devin opened this PR as itself.


Devin Review

Status Commit
⚪ Not started

Run Devin Review

Devin Review (Staging)

devin-ai-integration Bot and others added 2 commits August 26, 2026 13:30
Co-Authored-By: Paul Abboud <abboudpaul112@gmail.com>
Co-Authored-By: Paul Abboud <abboudpaul112@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants