Skip to content

migrate: vue-cli/webpack → vite 7.3.1#60

Merged
libotony merged 4 commits intomasterfrom
tony/update-connex
Mar 24, 2026
Merged

migrate: vue-cli/webpack → vite 7.3.1#60
libotony merged 4 commits intomasterfrom
tony/update-connex

Conversation

@libotony
Copy link
Copy Markdown
Member

  • Replace vue-cli-service with vite, @vitejs/plugin-vue2, vite-plugin-pwa, vite-plugin-svg-icons, vite-plugin-node-polyfills
  • Move index.html to project root with <script type="module"> entry point
  • Remove vue.config.js, babel.config.js, postcss.config.js, vue-template-compiler
  • Migrate SCSS @import paths (remove ~ prefix), SVG imports to virtual:svg-icons-register
  • Upgrade @vechain/connex 2.2.0→2.3.2, thor-devkit 2.1.1→2.2.0
  • Upgrade TypeScript to 5.7.3, @types/node to 22.19.15
  • Add skipLibCheck to tsconfig; replace webpack-env types with vite/client
  • Add eslint@8 + eslint-plugin-vue@9 + @typescript-eslint/* with .eslintrc.js
  • Merge public/manifest.json into VitePWA manifest config
  • Add resolutions.readable-stream@^3.6.2 to deduplicate hash-base nested dep
  • Update Node 16→20 in Dockerfile, .nvmrc, CI workflow
  • Fix entrypoint.sh asset glob: js/app..js → assets/.js
  • Fix unused abi import in AccountTransfers.vue; add default return in Frame.vue network()

Constraint: vite@8 incompatible with @vitejs/plugin-vue2 (esbuild removed); pinned to 7.3.1
Constraint: vite-plugin-node-polyfills include list must cover http/https for @vechain/connex-driver
Rejected: vite@8 | removed esbuild, uses rolldown — breaks @vitejs/plugin-vue2
Rejected: resolve.dedupe for readable-stream | yarn resolutions more reliable for nested deps
Confidence: high
Scope-risk: broad

- Replace vue-cli-service with vite, @vitejs/plugin-vue2, vite-plugin-pwa,
  vite-plugin-svg-icons, vite-plugin-node-polyfills
- Move index.html to project root with <script type="module"> entry point
- Remove vue.config.js, babel.config.js, postcss.config.js, vue-template-compiler
- Migrate SCSS @import paths (remove ~ prefix), SVG imports to virtual:svg-icons-register
- Upgrade @vechain/connex 2.2.0→2.3.2, thor-devkit 2.1.1→2.2.0
- Upgrade TypeScript to 5.7.3, @types/node to 22.19.15
- Add skipLibCheck to tsconfig; replace webpack-env types with vite/client
- Add eslint@8 + eslint-plugin-vue@9 + @typescript-eslint/* with .eslintrc.js
- Merge public/manifest.json into VitePWA manifest config
- Add resolutions.readable-stream@^3.6.2 to deduplicate hash-base nested dep
- Update Node 16→20 in Dockerfile, .nvmrc, CI workflow
- Fix entrypoint.sh asset glob: js/app.*.js* → assets/*.js*
- Fix unused abi import in AccountTransfers.vue; add default return in Frame.vue network()

Constraint: vite@8 incompatible with @vitejs/plugin-vue2 (esbuild removed); pinned to 7.3.1
Constraint: vite-plugin-node-polyfills include list must cover http/https for @vechain/connex-driver
Rejected: vite@8 | removed esbuild, uses rolldown — breaks @vitejs/plugin-vue2
Rejected: resolve.dedupe for readable-stream | yarn resolutions more reliable for nested deps
Confidence: high
Scope-risk: broad
- Alias @vechain/picasso to its CJS entry (dist/index.js) — esm/index.js
  incorrectly uses require('mersenne-twister') despite being pointed to
  by the module field, which Rollup processes as ESM and cannot transform
- Deduplicate readable-stream to ^3.6.2 via resolutions to eliminate
  hash-base nested [email protected] which lacked process.version at runtime
- Scope vite-plugin-node-polyfills include list to only required modules:
  buffer, crypto, http, https, stream, process, util

Constraint: @vechain/picasso esm/index.js uses require() — not fixable without patching upstream
Rejected: resolve.mainFields override | too broad, would affect all packages
Confidence: high
Scope-risk: narrow
- 4 smoke tests against mainnet via yarn preview:
  home (bandwidth chart, recent blocks, recent transfers),
  block detail, tx detail, account detail
- pageerror listener catches uncaught JS exceptions immediately
- playwright.config.ts auto-starts yarn preview via webServer
- ci-smoke.yml: checkout → build → playwright chromium → upload traces on failure
- retries: 1 to tolerate transient mainnet network blips

Constraint: tests hit real mainnet; requires internet access in CI runners
Confidence: high
Scope-risk: narrow
- Switch node-version to node-version-file: .nvmrc in ci-smoke.yml and
  build-deploy-cloudfront-s3.yml (single source of truth)
- Add permissions: contents: read to ci-smoke.yml

Confidence: high
Scope-risk: narrow
@libotony libotony force-pushed the tony/update-connex branch from 6ae9d1f to 55bb021 Compare March 24, 2026 07:06
@libotony libotony merged commit 3628aec into master Mar 24, 2026
5 checks passed
@libotony libotony deleted the tony/update-connex branch March 24, 2026 11:24
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