Skip to content

feat: migrate from Node.js/npm to Bun with Vite bundler#2

Closed
MiltonTulli wants to merge 4 commits into
mainfrom
feature/migrate-to-bun
Closed

feat: migrate from Node.js/npm to Bun with Vite bundler#2
MiltonTulli wants to merge 4 commits into
mainfrom
feature/migrate-to-bun

Conversation

@MiltonTulli

@MiltonTulli MiltonTulli commented Jan 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace npm with Bun as package manager and runtime
  • Replace Webpack with Vite as bundler
  • Update all scripts to use Bun commands
  • Update GitHub Actions workflows to use oven-sh/setup-bun
  • Change dev server port from 3030 to 3000
  • Replace jsdom with happy-dom for Vitest (ESM compatibility)

Changes

File Change
package.json Add packageManager, update scripts, remove eslintConfig
bunfig.toml New Bun configuration
vite.config.ts New Vite configuration (replaces webpack.config.js)
index.html Moved from public/ to root (Vite requirement)
vitest.config.ts Changed environment to happy-dom
playwright.config.ts Updated port and commands
scripts/*.sh Updated to use Bun commands
.github/workflows/*.yml Migrated from setup-node to setup-bun
README.md, CLAUDE.md Updated documentation

Removed

  • .nvmrc - No longer needed
  • package-lock.json - Replaced by bun.lock
  • webpack.config.js - Replaced by Vite
  • eslintConfig in package.json - Using Biome

Test plan

  • bun install - Installs dependencies correctly
  • bun start - Dev server runs on port 3000
  • bun run build - Production build succeeds
  • bun run test:run - All 65 tests pass
  • bun run typecheck - No TypeScript errors
  • bun run format && bun run lint - No issues

🤖 Generated with Claude Code


Note

Migrates CI to Bun and updates docs for the new toolchain.

  • Replace actions/setup-node/npm with oven-sh/setup-bun and bun install across deploy-gh-pages.yml, deploy-pr-preview.yml, e2e.yml, and hash-deploy-build.yml; update E2E to use bunx playwright and bun run test:e2e
  • Keep build scripts but run via Bun; GitHub Pages and Netlify steps remain, with PR preview comment preserved; IPFS deploy workflow updated and adds pin-name
  • Update README.md and CLAUDE.md to Bun/Vite commands, ports, and tooling; remove .nvmrc

Written by Cursor Bugbot for commit fde76ed. This will update automatically on new commits. Configure here.

AugustoL and others added 4 commits January 14, 2026 11:26
Prevent false subdomain detection on openscan.eth.link and
openscan.eth.limo which was causing unwanted redirects to the
base domain (eth.link/eth.limo).
Switch from conditional BrowserRouter/HashRouter to HashRouter
everywhere. This fixes the refresh issue on IPFS gateways where
deep URLs would fail to resolve since IPFS cannot handle
client-side routing paths.
- Replace npm with Bun as package manager and runtime
- Replace Webpack with Vite as bundler
- Update all scripts to use Bun commands
- Update GitHub Actions workflows to use oven-sh/setup-bun
- Update documentation (README.md, CLAUDE.md)
- Change dev server port from 3030 to 3000
- Replace jsdom with happy-dom for Vitest (ESM compatibility)
- Remove eslintConfig (using Biome instead)
@MiltonTulli MiltonTulli changed the base branch from dev to main January 14, 2026 14:30

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment thread .github/workflows/e2e.yml

- name: Run E2E tests
run: npm run test:e2e
run: bun run test:e2e

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

E2E tests run against dev server instead of production build

Medium Severity

The E2E workflow builds a production bundle via ./scripts/build-production.sh (which outputs to dist/) but the playwright.config.ts starts the dev server with bun run start instead of serving the built files with bun run preview. This means the production build is created but never actually tested—E2E tests run against the development server instead. The webServer command in playwright.config.ts likely needs to be bun run preview to test the production build.

Fix in Cursor Fix in Web

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.

2 participants