Open
Description
I'm using React Router as a...
framework (SPA mode)
Reproduction
I could not find a way to set the node version on stackblitz, so i just created this repro: https://github.com/chargome/react-router-spa-repro
We were facing this in our e2e tests when upgrading from node 20.18.2 to 20.19.2. In this test we use react router as a framework but in SPA mode (ssr: false
).
System Info
System:
OS: macOS 15.4.1
CPU: (10) arm64 Apple M1 Max
Memory: 83.33 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.19.2 - ~/.volta/tools/image/node/20.19.2/bin/node
Yarn: 1.22.22 - ~/.volta/tools/image/yarn/1.22.22/bin/yarn
npm: 10.8.2 - ~/.volta/tools/image/node/20.19.2/bin/npm
Watchman: 2024.12.02.00 - /opt/homebrew/bin/watchman
Browsers:
Chrome: 137.0.7151.105
Firefox: 139.0.4
Safari: 18.4
npmPackages:
@react-router/dev: ^7.5.3 => 7.6.2
@react-router/node: ^7.5.3 => 7.6.2
@react-router/serve: ^7.5.3 => 7.6.2
react-router: ^7.1.5 => 7.6.2
vite: ^6.3.3 => 6.3.5
Used Package Manager
npm
Expected Behavior
The app should start the same way as with node version 20.18
Actual Behavior
Starting the server using vite preview
gave us this error when upgrading the node version to 20.19:
Error [ERR_REQUIRE_CYCLE_MODULE]: Cannot require() ES Module /Users/{user}/Desktop/code/sentry-javascript/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa/node_modules/.pnpm/vite@6.3.5_@types+node@20.19.1_jiti@2.4.2_lightningcss@1.30.1/node_modules/vite/dist/node/index.js in a cycle. (from /Users/{user}/Desktop/code/sentry-javascript/dev-packages/e2e-tests/test-applications/react-router-7-framework-spa/node_modules/.pnpm/vite-node@3.2.4_@types+node@20.19.1_jiti@2.4.2_lightningcss@1.30.1/node_modules/vite-node/dist/server.cjs)
[WebServer] at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:309:15)
[WebServer] at loadESMFromCJS (node:internal/modules/cjs/loader:1371:24)
[WebServer] at Module._compile (node:internal/modules/cjs/loader:1511:5)
[WebServer] at Module._extensions..js (node:internal/modules/cjs/loader:1572:16)
[WebServer] at Module.load (node:internal/modules/cjs/loader:1275:32)
```