-
-
Notifications
You must be signed in to change notification settings - Fork 7.4k
fix(dev): allow aliases starting with //
#20760
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense to me. The intent is similar to the one done for ssr external just below by #15602
vite/packages/vite/src/node/plugins/importAnalysis.ts
Lines 520 to 521 in 84079a8
| // skip ssr externals and builtins | |
| if (ssr && !matchAlias(specifier)) { |
|
Checking in if there's anything I can do to help this land :) |
//
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we should remove this if block completely. But I think it's better to keep it for now.
This comment was marked as outdated.
This comment was marked as outdated.
commit: |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
/ecosystem-ci run |
|
📝 Ran ecosystem CI on
✅ analogjs, astro, ladle, rakkas, nuxt, quasar, marko, storybook, sveltekit, vike, vite-environment-examples, vite-plugin-pwa, vite-plugin-react, react-router, vite-plugin-svelte, vite-plugin-cloudflare, unocss, vite-plugin-vue, vite-plugin-rsc, vitepress, vite-setup-catalogue, vuepress, waku, vitest |
| datasource | package | from | to | | ---------- | ------- | ----- | ------ | | npm | vite | 7.1.9 | 7.1.10 | ## [v7.1.10](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-7110-2025-10-14-small) ##### Bug Fixes - **css:** avoid duplicate style for server rendered stylesheet link and client inline style during dev ([#20767](vitejs/vite#20767)) ([3a92bc7](vitejs/vite@3a92bc7)) - **css:** respect emitAssets when cssCodeSplit=false ([#20883](vitejs/vite#20883)) ([d3e7eee](vitejs/vite@d3e7eee)) - **deps:** update all non-major dependencies ([879de86](vitejs/vite@879de86)) - **deps:** update all non-major dependencies ([#20894](vitejs/vite#20894)) ([3213f90](vitejs/vite@3213f90)) - **dev:** allow aliases starting with `//` ([#20760](vitejs/vite#20760)) ([b95fa2a](vitejs/vite@b95fa2a)) - **dev:** remove timestamp query consistently ([#20887](vitejs/vite#20887)) ([6537d15](vitejs/vite@6537d15)) - **esbuild:** inject esbuild helpers correctly for esbuild 0.25.9+ ([#20906](vitejs/vite#20906)) ([446eb38](vitejs/vite@446eb38)) - normalize path before calling `fileToBuiltUrl` ([#20898](vitejs/vite#20898)) ([73b6d24](vitejs/vite@73b6d24)) - preserve original sourcemap file field when combining sourcemaps ([#20926](vitejs/vite#20926)) ([c714776](vitejs/vite@c714776)) ##### Documentation - correct `WebSocket` spelling ([#20890](vitejs/vite#20890)) ([29e98dc](vitejs/vite@29e98dc)) ##### Miscellaneous Chores - **deps:** update rolldown-related dependencies ([#20923](vitejs/vite#20923)) ([a5e3b06](vitejs/vite@a5e3b06))
Description
Fix alias resolution being incorrectly skipped for URL-like patterns in dev server.
Problem
When an alias pattern resembles a URL (e.g.,
{ find: '//', replace: '...' }), the dev server's import analysis plugin incorrectly treats imports like//fooas external URLs and skips alias resolution (codepointer). This causes:vite buildcorrectly applies these aliases while dev server doesn'tSolution
Check if an import matches an alias before skipping it as an external URL.
Testing
Added test case in
playground/alias/that://prefix)Risks
None. Projects with URL-pattern aliases are already broken in dev mode, this fixes them without impacting other flows.