Vite dev server optionserver.fs.deny can be bypassed on case-insensitive file systems using case-augmented versions of filenames. Notably this affects servers hosted on Windows.
Vite dev server optionserver.fs.deny did not deny requests for patterns with directories. An example of such a pattern is /foo/**/*.
Impact
Only apps setting a custom server.fs.deny that includes a pattern with directories, and explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.
Patches
Fixed in vite@5.2.6, vite@5.1.7, vite@5.0.13, vite@4.5.3, vite@3.2.10, vite@2.9.18
Details
server.fs.deny uses picomatch with the config of { matchBase: true }. matchBase only matches the basename of the file, not the path due to a bug (https://github.com/micromatch/picomatch/issues/89). The vite config docs read like you should be able to set fs.deny to glob with picomatch. Vite also does not set { dot: true } and that causes dotfiles not to be denied unless they are explicitly defined.
Reproduction
Set fs.deny to ['**/.git/**'] and then curl for /.git/config.
with matchBase: true, you can get any file under .git/ (config, HEAD, etc).
with matchBase: false, you cannot get any file under .git/ (config, HEAD, etc).
Release Notes
vitejs/vite (vite)
### [`v4.5.3`](https://togithub.com/vitejs/vite/compare/v4.5.2...aac695e9f8f29da43c2f7c50c549fa3d3dfeeadc)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.2...v4.5.3)
### [`v4.5.2`](https://togithub.com/vitejs/vite/releases/tag/v4.5.2)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.1...v4.5.2)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) for details.
### [`v4.5.1`](https://togithub.com/vitejs/vite/releases/tag/v4.5.1)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.0...v4.5.1)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.1/packages/vite/CHANGELOG.md) for details.
### [`v4.5.0`](https://togithub.com/vitejs/vite/releases/tag/v4.5.0)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.12...v4.5.0)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.0/packages/vite/CHANGELOG.md) for details.
### [`v4.4.12`](https://togithub.com/vitejs/vite/releases/tag/v4.4.12)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.11...v4.4.12)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.12/packages/vite/CHANGELOG.md) for details.
### [`v4.4.11`](https://togithub.com/vitejs/vite/releases/tag/v4.4.11)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.10...v4.4.11)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.11/packages/vite/CHANGELOG.md) for details.
### [`v4.4.10`](https://togithub.com/vitejs/vite/releases/tag/v4.4.10)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.9...v4.4.10)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.10/packages/vite/CHANGELOG.md) for details.
### [`v4.4.9`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small449-2023-08-07-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.8...v4.4.9)
- chore: fix eslint warnings ([#14031](https://togithub.com/vitejs/vite/issues/14031)) ([4021a0e](https://togithub.com/vitejs/vite/commit/4021a0e)), closes [#14031](https://togithub.com/vitejs/vite/issues/14031)
- chore(deps): update all non-major dependencies ([#13938](https://togithub.com/vitejs/vite/issues/13938)) ([a1b519e](https://togithub.com/vitejs/vite/commit/a1b519e)), closes [#13938](https://togithub.com/vitejs/vite/issues/13938)
- fix: dynamic import vars ignored warning ([#14006](https://togithub.com/vitejs/vite/issues/14006)) ([4479431](https://togithub.com/vitejs/vite/commit/4479431)), closes [#14006](https://togithub.com/vitejs/vite/issues/14006)
- fix(build): silence warn dynamic import module when inlineDynamicImports true ([#13970](https://togithub.com/vitejs/vite/issues/13970)) ([7a77aaf](https://togithub.com/vitejs/vite/commit/7a77aaf)), closes [#13970](https://togithub.com/vitejs/vite/issues/13970)
- perf: improve build times and memory utilization ([#14016](https://togithub.com/vitejs/vite/issues/14016)) ([9d7d45e](https://togithub.com/vitejs/vite/commit/9d7d45e)), closes [#14016](https://togithub.com/vitejs/vite/issues/14016)
- perf: replace startsWith with === ([#14005](https://togithub.com/vitejs/vite/issues/14005)) ([f5c1224](https://togithub.com/vitejs/vite/commit/f5c1224)), closes [#14005](https://togithub.com/vitejs/vite/issues/14005)
### [`v4.4.8`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small448-2023-07-31-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.7...v4.4.8)
- fix: modulePreload false ([#13973](https://togithub.com/vitejs/vite/issues/13973)) ([488085d](https://togithub.com/vitejs/vite/commit/488085d)), closes [#13973](https://togithub.com/vitejs/vite/issues/13973)
- fix: multiple entries with shared css and no JS ([#13962](https://togithub.com/vitejs/vite/issues/13962)) ([89a3db0](https://togithub.com/vitejs/vite/commit/89a3db0)), closes [#13962](https://togithub.com/vitejs/vite/issues/13962)
- fix: use file extensions on type imports so they work with `moduleResolution: 'node16'` ([#13947](https://togithub.com/vitejs/vite/issues/13947)) ([aeef670](https://togithub.com/vitejs/vite/commit/aeef670)), closes [#13947](https://togithub.com/vitejs/vite/issues/13947)
- fix(css): enhance error message for missing preprocessor dependency ([#11485](https://togithub.com/vitejs/vite/issues/11485)) ([65e5c22](https://togithub.com/vitejs/vite/commit/65e5c22)), closes [#11485](https://togithub.com/vitejs/vite/issues/11485)
- fix(esbuild): fix static properties transpile when useDefineForClassFields false ([#13992](https://togithub.com/vitejs/vite/issues/13992)) ([4ca7c13](https://togithub.com/vitejs/vite/commit/4ca7c13)), closes [#13992](https://togithub.com/vitejs/vite/issues/13992)
- fix(importAnalysis): strip url base before passing as safeModulePaths ([#13712](https://togithub.com/vitejs/vite/issues/13712)) ([1ab06a8](https://togithub.com/vitejs/vite/commit/1ab06a8)), closes [#13712](https://togithub.com/vitejs/vite/issues/13712)
- fix(importMetaGlob): avoid unnecessary hmr of negative glob ([#13646](https://togithub.com/vitejs/vite/issues/13646)) ([844451c](https://togithub.com/vitejs/vite/commit/844451c)), closes [#13646](https://togithub.com/vitejs/vite/issues/13646)
- fix(optimizer): avoid double-commit of optimized deps when discovery is disabled ([#13865](https://togithub.com/vitejs/vite/issues/13865)) ([df77991](https://togithub.com/vitejs/vite/commit/df77991)), closes [#13865](https://togithub.com/vitejs/vite/issues/13865)
- fix(optimizer): enable experimentalDecorators by default ([#13981](https://togithub.com/vitejs/vite/issues/13981)) ([f8a5ffc](https://togithub.com/vitejs/vite/commit/f8a5ffc)), closes [#13981](https://togithub.com/vitejs/vite/issues/13981)
- perf: replace startsWith with === ([#13989](https://togithub.com/vitejs/vite/issues/13989)) ([3aab14e](https://togithub.com/vitejs/vite/commit/3aab14e)), closes [#13989](https://togithub.com/vitejs/vite/issues/13989)
- perf: single slash does not need to be replaced ([#13980](https://togithub.com/vitejs/vite/issues/13980)) ([66f522c](https://togithub.com/vitejs/vite/commit/66f522c)), closes [#13980](https://togithub.com/vitejs/vite/issues/13980)
- perf: use Intl.DateTimeFormatter instead of toLocaleTimeString ([#13951](https://togithub.com/vitejs/vite/issues/13951)) ([af53a1d](https://togithub.com/vitejs/vite/commit/af53a1d)), closes [#13951](https://togithub.com/vitejs/vite/issues/13951)
- perf: use Intl.NumberFormat instead of toLocaleString ([#13949](https://togithub.com/vitejs/vite/issues/13949)) ([a48bf88](https://togithub.com/vitejs/vite/commit/a48bf88)), closes [#13949](https://togithub.com/vitejs/vite/issues/13949)
- perf: use magic-string hires boundary for sourcemaps ([#13971](https://togithub.com/vitejs/vite/issues/13971)) ([b9a8d65](https://togithub.com/vitejs/vite/commit/b9a8d65)), closes [#13971](https://togithub.com/vitejs/vite/issues/13971)
- chore(reporter): remove unnecessary map ([#13972](https://togithub.com/vitejs/vite/issues/13972)) ([dd9d4c1](https://togithub.com/vitejs/vite/commit/dd9d4c1)), closes [#13972](https://togithub.com/vitejs/vite/issues/13972)
- refactor: add new overload to the type of defineConfig ([#13958](https://togithub.com/vitejs/vite/issues/13958)) ([24c12fe](https://togithub.com/vitejs/vite/commit/24c12fe)), closes [#13958](https://togithub.com/vitejs/vite/issues/13958)
### [`v4.4.7`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small447-2023-07-24-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.6...v4.4.7)
- fix: `optimizeDeps.include` not working with paths inside packages ([#13922](https://togithub.com/vitejs/vite/issues/13922)) ([06e4f57](https://togithub.com/vitejs/vite/commit/06e4f57)), closes [#13922](https://togithub.com/vitejs/vite/issues/13922)
- fix: lightningcss fails with html-proxy ([#13776](https://togithub.com/vitejs/vite/issues/13776)) ([6b56094](https://togithub.com/vitejs/vite/commit/6b56094)), closes [#13776](https://togithub.com/vitejs/vite/issues/13776)
- fix: prepend `config.base` to vite/env path ([#13941](https://togithub.com/vitejs/vite/issues/13941)) ([8e6cee8](https://togithub.com/vitejs/vite/commit/8e6cee8)), closes [#13941](https://togithub.com/vitejs/vite/issues/13941)
- fix(html): support `import.meta.env` define replacement without quotes ([#13425](https://togithub.com/vitejs/vite/issues/13425)) ([883089c](https://togithub.com/vitejs/vite/commit/883089c)), closes [#13425](https://togithub.com/vitejs/vite/issues/13425)
- fix(proxy): handle error when proxy itself errors ([#13929](https://togithub.com/vitejs/vite/issues/13929)) ([4848e41](https://togithub.com/vitejs/vite/commit/4848e41)), closes [#13929](https://togithub.com/vitejs/vite/issues/13929)
- chore(eslint): allow type annotations ([#13920](https://togithub.com/vitejs/vite/issues/13920)) ([d1264fd](https://togithub.com/vitejs/vite/commit/d1264fd)), closes [#13920](https://togithub.com/vitejs/vite/issues/13920)
### [`v4.4.6`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small446-2023-07-21-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.5...v4.4.6)
- fix: constrain inject helpers for iife ([#13909](https://togithub.com/vitejs/vite/issues/13909)) ([c89f677](https://togithub.com/vitejs/vite/commit/c89f677)), closes [#13909](https://togithub.com/vitejs/vite/issues/13909)
- fix: display manualChunks warning only when a function is not used ([#13797](https://togithub.com/vitejs/vite/issues/13797)) ([#13798](https://togithub.com/vitejs/vite/issues/13798)) ([51c271f](https://togithub.com/vitejs/vite/commit/51c271f)), closes [#13797](https://togithub.com/vitejs/vite/issues/13797) [#13798](https://togithub.com/vitejs/vite/issues/13798)
- fix: do not append `browserHash` on optimized deps during build ([#13906](https://togithub.com/vitejs/vite/issues/13906)) ([0fb2340](https://togithub.com/vitejs/vite/commit/0fb2340)), closes [#13906](https://togithub.com/vitejs/vite/issues/13906)
- fix: use Bun's implementation of `ws` instead of the bundled one ([#13901](https://togithub.com/vitejs/vite/issues/13901)) ([049404c](https://togithub.com/vitejs/vite/commit/049404c)), closes [#13901](https://togithub.com/vitejs/vite/issues/13901)
- feat(client): add guide to press Esc for closing the overlay ([#13896](https://togithub.com/vitejs/vite/issues/13896)) ([da389cc](https://togithub.com/vitejs/vite/commit/da389cc)), closes [#13896](https://togithub.com/vitejs/vite/issues/13896)
### [`v4.4.5`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small445-2023-07-20-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.4...v4.4.5)
- fix: "EISDIR: illegal operation on a directory, realpath" error on RA⦠([#13655](https://togithub.com/vitejs/vite/issues/13655)) ([6bd5434](https://togithub.com/vitejs/vite/commit/6bd5434)), closes [#13655](https://togithub.com/vitejs/vite/issues/13655)
- fix: transform error message add file info ([#13687](https://togithub.com/vitejs/vite/issues/13687)) ([6dca41c](https://togithub.com/vitejs/vite/commit/6dca41c)), closes [#13687](https://togithub.com/vitejs/vite/issues/13687)
- fix: warn when publicDir and outDir are nested ([#13742](https://togithub.com/vitejs/vite/issues/13742)) ([4eb3154](https://togithub.com/vitejs/vite/commit/4eb3154)), closes [#13742](https://togithub.com/vitejs/vite/issues/13742)
- fix(build): remove warning about ineffective dynamic import from node_modules ([#13884](https://togithub.com/vitejs/vite/issues/13884)) ([33002dd](https://togithub.com/vitejs/vite/commit/33002dd)), closes [#13884](https://togithub.com/vitejs/vite/issues/13884)
- fix(build): style insert order for UMD builds (fix [#13668](https://togithub.com/vitejs/vite/issues/13668)) ([#13669](https://togithub.com/vitejs/vite/issues/13669)) ([49a1b99](https://togithub.com/vitejs/vite/commit/49a1b99)), closes [#13668](https://togithub.com/vitejs/vite/issues/13668) [#13669](https://togithub.com/vitejs/vite/issues/13669)
- fix(deps): update all non-major dependencies ([#13872](https://togithub.com/vitejs/vite/issues/13872)) ([975a631](https://togithub.com/vitejs/vite/commit/975a631)), closes [#13872](https://togithub.com/vitejs/vite/issues/13872)
- fix(types): narrow down the return type of `defineConfig` ([#13792](https://togithub.com/vitejs/vite/issues/13792)) ([c971f26](https://togithub.com/vitejs/vite/commit/c971f26)), closes [#13792](https://togithub.com/vitejs/vite/issues/13792)
- chore: fix typos ([#13862](https://togithub.com/vitejs/vite/issues/13862)) ([f54e8da](https://togithub.com/vitejs/vite/commit/f54e8da)), closes [#13862](https://togithub.com/vitejs/vite/issues/13862)
- chore: replace `any` with `string` ([#13850](https://togithub.com/vitejs/vite/issues/13850)) ([4606fd8](https://togithub.com/vitejs/vite/commit/4606fd8)), closes [#13850](https://togithub.com/vitejs/vite/issues/13850)
- chore(deps): update dependency prettier to v3 ([#13759](https://togithub.com/vitejs/vite/issues/13759)) ([5a56941](https://togithub.com/vitejs/vite/commit/5a56941)), closes [#13759](https://togithub.com/vitejs/vite/issues/13759)
- docs: fix build.cssMinify link ([#13840](https://togithub.com/vitejs/vite/issues/13840)) ([8a2a3e1](https://togithub.com/vitejs/vite/commit/8a2a3e1)), closes [#13840](https://togithub.com/vitejs/vite/issues/13840)
### [`v4.4.4`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small444-2023-07-14-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.3...v4.4.4)
- chore: warning about ssr cjs format removal ([#13827](https://togithub.com/vitejs/vite/issues/13827)) ([4646e9f](https://togithub.com/vitejs/vite/commit/4646e9f)), closes [#13827](https://togithub.com/vitejs/vite/issues/13827)
- fix(esbuild): enable experimentalDecorators by default ([#13805](https://togithub.com/vitejs/vite/issues/13805)) ([e8880f0](https://togithub.com/vitejs/vite/commit/e8880f0)), closes [#13805](https://togithub.com/vitejs/vite/issues/13805)
- fix(scan): skip tsconfigRaw fallback if tsconfig is set ([#13823](https://togithub.com/vitejs/vite/issues/13823)) ([b6155a1](https://togithub.com/vitejs/vite/commit/b6155a1)), closes [#13823](https://togithub.com/vitejs/vite/issues/13823)
- feat(client): close `vite-error-overlay` with Escape key ([#13795](https://togithub.com/vitejs/vite/issues/13795)) ([85bdcda](https://togithub.com/vitejs/vite/commit/85bdcda)), closes [#13795](https://togithub.com/vitejs/vite/issues/13795)
### [`v4.4.3`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small443-2023-07-11-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.2...v4.4.3)
- fix: avoid early error when server is closed in ssr ([#13787](https://togithub.com/vitejs/vite/issues/13787)) ([89d01eb](https://togithub.com/vitejs/vite/commit/89d01eb)), closes [#13787](https://togithub.com/vitejs/vite/issues/13787)
- fix(deps): update all non-major dependencies ([#13758](https://togithub.com/vitejs/vite/issues/13758)) ([8ead116](https://togithub.com/vitejs/vite/commit/8ead116)), closes [#13758](https://togithub.com/vitejs/vite/issues/13758)
- fix(server): remove restart guard on restart ([#13789](https://togithub.com/vitejs/vite/issues/13789)) ([2a38ef7](https://togithub.com/vitejs/vite/commit/2a38ef7)), closes [#13789](https://togithub.com/vitejs/vite/issues/13789)
### [`v4.4.2`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small442-2023-07-07-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.1...v4.4.2)
- fix(css): use single postcss instance ([#13738](https://togithub.com/vitejs/vite/issues/13738)) ([c02fac4](https://togithub.com/vitejs/vite/commit/c02fac4)), closes [#13738](https://togithub.com/vitejs/vite/issues/13738)
### [`v4.4.1`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small441-2023-07-06-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.0...v4.4.1)
- fix: revert [#13073](https://togithub.com/vitejs/vite/issues/13073), use consistent virtual module ID in module graph ([#13734](https://togithub.com/vitejs/vite/issues/13734)) ([f589ac0](https://togithub.com/vitejs/vite/commit/f589ac0)), closes [#13073](https://togithub.com/vitejs/vite/issues/13073) [#13734](https://togithub.com/vitejs/vite/issues/13734)
- fix: revert import config module as data ([#13731](https://togithub.com/vitejs/vite/issues/13731)) ([b0bfa01](https://togithub.com/vitejs/vite/commit/b0bfa01)), closes [#13731](https://togithub.com/vitejs/vite/issues/13731)
- chore: changelog notes and clean for 4.4 ([#13728](https://togithub.com/vitejs/vite/issues/13728)) ([3f4e36e](https://togithub.com/vitejs/vite/commit/3f4e36e)), closes [#13728](https://togithub.com/vitejs/vite/issues/13728)
### [`v4.4.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#440-2023-07-06)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.3.9...v4.4.0)
##### Experimental support for Lightning CSS
Starting from Vite 4.4, there is experimental support for [Lightning CSS](https://lightningcss.dev/). You can opt into it by adding [`css.transformer: 'lightningcss'`](https://main.vitejs.dev/config/shared-options.html#css-transformer) to your config file and install the optional [`lightningcss`](https://www.npmjs.com/package/lightningcss) dev dependency. If enabled, CSS files will be processed by Lightning CSS instead of PostCSS.
Lightning CSS can also be used as the CSS minifier with [`build.cssMinify: 'lightningcss'`](https://main.vitejs.dev/config/build-options.html#build-cssminify).
See beta docs at the [Lighting CSS guide](https://main.vitejs.dev/guide/features.html#lightning-css).
##### esbuild 0.18 update
[esbuild 0.18](https://togithub.com/evanw/esbuild/blob/main/CHANGELOG.md#0180) contains backwards-incompatible changes to esbuild's handling of `tsconfig.json` files. We think they shouldn't affect Vite users, you can review [#13525](https://togithub.com/vitejs/vite/issues/13525) for more information.
##### Templates for Solid and Qwik in create-vite
New starter templates have been added to [create-vite](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) for [Solid](https://www.solidjs.com/) and [Qwik](https://qwik.builder.io/). Try them online at [vite.new/solid-ts](https://vite.new/solid-ts) and [vite.new/qwik-ts](https://vite.new/qwik-ts).
##### Korean Translation
Vite's docs are now translated to Korean, available at [ko.vitejs.dev](https://ko.vitejs.dev).
##### Features
- feat: preview mode add keyboard shortcuts ([#12968](https://togithub.com/vitejs/vite/issues/12968)) ([126e93e](https://togithub.com/vitejs/vite/commit/126e93e)), closes [#12968](https://togithub.com/vitejs/vite/issues/12968)
- feat: asset type add apng ([#13294](https://togithub.com/vitejs/vite/issues/13294)) ([a11b6f6](https://togithub.com/vitejs/vite/commit/a11b6f6)), closes [#13294](https://togithub.com/vitejs/vite/issues/13294)
- feat: emit event to handle chunk load errors ([#12084](https://togithub.com/vitejs/vite/issues/12084)) ([2eca54e](https://togithub.com/vitejs/vite/commit/2eca54e)), closes [#12084](https://togithub.com/vitejs/vite/issues/12084)
- feat: import public non-asset URL ([#13422](https://togithub.com/vitejs/vite/issues/13422)) ([3a98558](https://togithub.com/vitejs/vite/commit/3a98558)), closes [#13422](https://togithub.com/vitejs/vite/issues/13422)
- feat: support files for `fs.allow` ([#12863](https://togithub.com/vitejs/vite/issues/12863)) ([4a06e66](https://togithub.com/vitejs/vite/commit/4a06e66)), closes [#12863](https://togithub.com/vitejs/vite/issues/12863)
- feat(build): warn dynamic import module with a static import alongside ([#12850](https://togithub.com/vitejs/vite/issues/12850)) ([127c334](https://togithub.com/vitejs/vite/commit/127c334)), closes [#12850](https://togithub.com/vitejs/vite/issues/12850)
- feat(client): add debounce on page reload ([#13545](https://togithub.com/vitejs/vite/issues/13545)) ([d080b51](https://togithub.com/vitejs/vite/commit/d080b51)), closes [#13545](https://togithub.com/vitejs/vite/issues/13545)
- feat(client): add WebSocket connections events ([#13334](https://togithub.com/vitejs/vite/issues/13334)) ([eb75103](https://togithub.com/vitejs/vite/commit/eb75103)), closes [#13334](https://togithub.com/vitejs/vite/issues/13334)
- feat(config): friendly ESM file require error ([#13283](https://togithub.com/vitejs/vite/issues/13283)) ([b9a6ba0](https://togithub.com/vitejs/vite/commit/b9a6ba0)), closes [#13283](https://togithub.com/vitejs/vite/issues/13283)
- feat(css): add support for Lightning CSS ([#12807](https://togithub.com/vitejs/vite/issues/12807)) ([c6c5d49](https://togithub.com/vitejs/vite/commit/c6c5d49)), closes [#12807](https://togithub.com/vitejs/vite/issues/12807)
- feat(css): support at import preprocessed styles ([#8400](https://togithub.com/vitejs/vite/issues/8400)) ([2bd6077](https://togithub.com/vitejs/vite/commit/2bd6077)), closes [#8400](https://togithub.com/vitejs/vite/issues/8400)
- feat(html): support image set in inline style ([#13473](https://togithub.com/vitejs/vite/issues/13473)) ([2c0faba](https://togithub.com/vitejs/vite/commit/2c0faba)), closes [#13473](https://togithub.com/vitejs/vite/issues/13473)
- feat(importMetaGlob): support sub imports pattern ([#12467](https://togithub.com/vitejs/vite/issues/12467)) ([e355c9c](https://togithub.com/vitejs/vite/commit/e355c9c)), closes [#12467](https://togithub.com/vitejs/vite/issues/12467)
- feat(optimizer): support glob includes ([#12414](https://togithub.com/vitejs/vite/issues/12414)) ([7792515](https://togithub.com/vitejs/vite/commit/7792515)), closes [#12414](https://togithub.com/vitejs/vite/issues/12414)
- feat!: update esbuild to 0.18.2 ([#13525](https://togithub.com/vitejs/vite/issues/13525)) ([ab967c0](https://togithub.com/vitejs/vite/commit/ab967c0)), closes [#13525](https://togithub.com/vitejs/vite/issues/13525)
##### Bug Fixes
- fix: check document before detect script rel ([#13559](https://togithub.com/vitejs/vite/issues/13559)) ([be4b0c0](https://togithub.com/vitejs/vite/commit/be4b0c0)), closes [#13559](https://togithub.com/vitejs/vite/issues/13559)
- fix(define): stringify object parse error in build mode ([#13600](https://togithub.com/vitejs/vite/issues/13600)) ([71516db](https://togithub.com/vitejs/vite/commit/71516db)), closes [#13600](https://togithub.com/vitejs/vite/issues/13600)
- fix(deps): update all non-major dependencies ([#13701](https://togithub.com/vitejs/vite/issues/13701)) ([02c6bc3](https://togithub.com/vitejs/vite/commit/02c6bc3)), closes [#13701](https://togithub.com/vitejs/vite/issues/13701)
- fix(esbuild): use `useDefineForClassFields: false` when no `compilerOptions.target` is declared ([#13](https://togithub.com/vitejs/vite/issues/13) ([7ef2472](https://togithub.com/vitejs/vite/commit/7ef2472)), closes [#13708](https://togithub.com/vitejs/vite/issues/13708)
- fix(pluginContainer): drop previous sourcesContent ([#13722](https://togithub.com/vitejs/vite/issues/13722)) ([9310b3a](https://togithub.com/vitejs/vite/commit/9310b3a)), closes [#13722](https://togithub.com/vitejs/vite/issues/13722)
- fix: lightningCSS should load external URL in CSS file ([#13692](https://togithub.com/vitejs/vite/issues/13692)) ([8517645](https://togithub.com/vitejs/vite/commit/8517645)), closes [#13692](https://togithub.com/vitejs/vite/issues/13692)
- fix: shortcut open browser when set host ([#13677](https://togithub.com/vitejs/vite/issues/13677)) ([6f1c55e](https://togithub.com/vitejs/vite/commit/6f1c55e)), closes [#13677](https://togithub.com/vitejs/vite/issues/13677)
- fix(cli): convert the sourcemap option to boolean (fix [#13638](https://togithub.com/vitejs/vite/issues/13638)) ([#13663](https://togithub.com/vitejs/vite/issues/13663)) ([d444bfe](https://togithub.com/vitejs/vite/commit/d444bfe)), closes [#13638](https://togithub.com/vitejs/vite/issues/13638) [#13663](https://togithub.com/vitejs/vite/issues/13663)
- fix(css): use esbuild legalComments config when minifying CSS ([#13661](https://togithub.com/vitejs/vite/issues/13661)) ([2d9008e](https://togithub.com/vitejs/vite/commit/2d9008e)), closes [#13661](https://togithub.com/vitejs/vite/issues/13661)
- fix(sourcemap): preserve original sourcesContent ([#13662](https://togithub.com/vitejs/vite/issues/13662)) ([f6362b6](https://togithub.com/vitejs/vite/commit/f6362b6)), closes [#13662](https://togithub.com/vitejs/vite/issues/13662)
- fix(ssr): transform superclass identifier ([#13635](https://togithub.com/vitejs/vite/issues/13635)) ([c5b2c8f](https://togithub.com/vitejs/vite/commit/c5b2c8f)), closes [#13635](https://togithub.com/vitejs/vite/issues/13635)
- fix: show error position ([#13623](https://togithub.com/vitejs/vite/issues/13623)) ([90271a6](https://togithub.com/vitejs/vite/commit/90271a6)), closes [#13623](https://togithub.com/vitejs/vite/issues/13623)
- fix(hmr): only invalidate `lastHMRTimestamp` of importers if the invalidated module is not a HMR bou ([1143e0b](https://togithub.com/vitejs/vite/commit/1143e0b)), closes [#13024](https://togithub.com/vitejs/vite/issues/13024)
- fix(indexHtml): decode html URI ([#13581](https://togithub.com/vitejs/vite/issues/13581)) ([f8868af](https://togithub.com/vitejs/vite/commit/f8868af)), closes [#13581](https://togithub.com/vitejs/vite/issues/13581)
- fix: avoid binding ClassExpression ([#13572](https://togithub.com/vitejs/vite/issues/13572)) ([1a0c806](https://togithub.com/vitejs/vite/commit/1a0c806)), closes [#13572](https://togithub.com/vitejs/vite/issues/13572)
- fix: the shortcut fails to open browser when set the host ([#13579](https://togithub.com/vitejs/vite/issues/13579)) ([e0a48c5](https://togithub.com/vitejs/vite/commit/e0a48c5)), closes [#13579](https://togithub.com/vitejs/vite/issues/13579)
- fix(proxy): forward SSE close event ([#13578](https://togithub.com/vitejs/vite/issues/13578)) ([4afbccb](https://togithub.com/vitejs/vite/commit/4afbccb)), closes [#13578](https://togithub.com/vitejs/vite/issues/13578)
- fix: allow using vite as a proxy for another vite server ([#13218](https://togithub.com/vitejs/vite/issues/13218)) ([711dd80](https://togithub.com/vitejs/vite/commit/711dd80)), closes [#13218](https://togithub.com/vitejs/vite/issues/13218)
- fix: await requests to before server restart ([#13262](https://togithub.com/vitejs/vite/issues/13262)) ([0464398](https://togithub.com/vitejs/vite/commit/0464398)), closes [#13262](https://togithub.com/vitejs/vite/issues/13262)
- fix: esm detection with `export const { A, B }` pattern ([#13483](https://togithub.com/vitejs/vite/issues/13483)) ([ea1bcc9](https://togithub.com/vitejs/vite/commit/ea1bcc9)), closes [#13483](https://togithub.com/vitejs/vite/issues/13483)
- fix: keep track of ssr version of imported modules separately ([#11973](https://togithub.com/vitejs/vite/issues/11973)) ([8fe6952](https://togithub.com/vitejs/vite/commit/8fe6952)), closes [#11973](https://togithub.com/vitejs/vite/issues/11973)
- fix: make optimize error available to meta-framework ([#13495](https://togithub.com/vitejs/vite/issues/13495)) ([b70e783](https://togithub.com/vitejs/vite/commit/b70e783)), closes [#13495](https://togithub.com/vitejs/vite/issues/13495)
- fix: only show the listened IP when host is specified ([#13412](https://togithub.com/vitejs/vite/issues/13412)) ([20b0cae](https://togithub.com/vitejs/vite/commit/20b0cae)), closes [#13412](https://togithub.com/vitejs/vite/issues/13412)
- fix: race condition creation module in graph in transformRequest ([#13085](https://togithub.com/vitejs/vite/issues/13085)) ([43cbbcf](https://togithub.com/vitejs/vite/commit/43cbbcf)), closes [#13085](https://togithub.com/vitejs/vite/issues/13085)
- fix: remove deprecated config.server.base ([#13482](https://togithub.com/vitejs/vite/issues/13482)) ([dc597bd](https://togithub.com/vitejs/vite/commit/dc597bd)), closes [#13482](https://togithub.com/vitejs/vite/issues/13482)
- fix: remove extra path shorten when resolving from a dir ([#13381](https://togithub.com/vitejs/vite/issues/13381)) ([5503198](https://togithub.com/vitejs/vite/commit/5503198)), closes [#13381](https://togithub.com/vitejs/vite/issues/13381)
- fix: show network URLs when `--host 0.0.0.0` ([#13438](https://togithub.com/vitejs/vite/issues/13438)) ([00ee8c1](https://togithub.com/vitejs/vite/commit/00ee8c1)), closes [#13438](https://togithub.com/vitejs/vite/issues/13438)
- fix: timestamp config dynamicImport ([#13502](https://togithub.com/vitejs/vite/issues/13502)) ([6a87c65](https://togithub.com/vitejs/vite/commit/6a87c65)), closes [#13502](https://togithub.com/vitejs/vite/issues/13502)
- fix: unexpected config temporary file ([#13269](https://togithub.com/vitejs/vite/issues/13269)) ([ff3ce31](https://togithub.com/vitejs/vite/commit/ff3ce31)), closes [#13269](https://togithub.com/vitejs/vite/issues/13269)
- fix: use consistent virtual module ID in module graph ([#13073](https://togithub.com/vitejs/vite/issues/13073)) ([aa1776f](https://togithub.com/vitejs/vite/commit/aa1776f)), closes [#13073](https://togithub.com/vitejs/vite/issues/13073)
- fix(build): make output warning message clearer ([#12924](https://togithub.com/vitejs/vite/issues/12924)) ([54ab3c8](https://togithub.com/vitejs/vite/commit/54ab3c8)), closes [#12924](https://togithub.com/vitejs/vite/issues/12924)
- fix(debug): import performance from perf_hooks ([#13464](https://togithub.com/vitejs/vite/issues/13464)) ([d458ccd](https://togithub.com/vitejs/vite/commit/d458ccd)), closes [#13464](https://togithub.com/vitejs/vite/issues/13464)
- fix(deps): update all non-major dependencies ([#13059](https://togithub.com/vitejs/vite/issues/13059)) ([123ef4c](https://togithub.com/vitejs/vite/commit/123ef4c)), closes [#13059](https://togithub.com/vitejs/vite/issues/13059)
- fix(deps): update all non-major dependencies ([#13488](https://togithub.com/vitejs/vite/issues/13488)) ([bd09248](https://togithub.com/vitejs/vite/commit/bd09248)), closes [#13488](https://togithub.com/vitejs/vite/issues/13488)
- fix(deps): update sirv to 2.0.3 ([#13057](https://togithub.com/vitejs/vite/issues/13057)) ([d814d6c](https://togithub.com/vitejs/vite/commit/d814d6c)), closes [#13057](https://togithub.com/vitejs/vite/issues/13057)
- fix(mergeConfig): don't accept callback config ([#13135](https://togithub.com/vitejs/vite/issues/13135)) ([998512b](https://togithub.com/vitejs/vite/commit/998512b)), closes [#13135](https://togithub.com/vitejs/vite/issues/13135)
- fix(optimizer): include exports for css modules ([#13519](https://togithub.com/vitejs/vite/issues/13519)) ([1fd9919](https://togithub.com/vitejs/vite/commit/1fd9919)), closes [#13519](https://togithub.com/vitejs/vite/issues/13519)
- fix(resolve): always use `module` condition ([#13370](https://togithub.com/vitejs/vite/issues/13370)) ([367920b](https://togithub.com/vitejs/vite/commit/367920b)), closes [#13370](https://togithub.com/vitejs/vite/issues/13370)
- fix(ssr): fix crash when a pnpm/Yarn workspace depends on a CJS package ([#9763](https://togithub.com/vitejs/vite/issues/9763)) ([9e1086b](https://togithub.com/vitejs/vite/commit/9e1086b)), closes [#9763](https://togithub.com/vitejs/vite/issues/9763)
##### Previous Changelogs
##### [4.4.0-beta.4](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.3....v4.4.0-beta.4) (2023-07-03)
See [4.4.0-beta.4 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.4/packages/vite/CHANGELOG.md)
##### [4.4.0-beta.3](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.2....v4.4.0-beta.3) (2023-06-25)
See [4.4.0-beta.3 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.3/packages/vite/CHANGELOG.md)
##### [4.4.0-beta.2](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.1....v4.4.0-beta.2) (2023-06-22)
See [4.4.0-beta.2 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.2/packages/vite/CHANGELOG.md)
##### [4.4.0-beta.1](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.0....v4.4.0-beta.1) (2023-06-21)
See [4.4.0-beta.1 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.1/packages/vite/CHANGELOG.md)
##### [4.4.0-beta.0](https://togithub.com/vitejs/vite/compare/v4.3.9....v4.4.0-beta.0) (2023-06-20)
See [4.4.0-beta.0 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.0/packages/vite/CHANGELOG.md)
Configuration
π Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
4.3.9
->4.5.3
GitHub Vulnerability Alerts
CVE-2024-23331
Summary
Vite dev server option
server.fs.deny
can be bypassed on case-insensitive file systems using case-augmented versions of filenames. Notably this affects servers hosted on Windows.This bypass is similar to https://nvd.nist.gov/vuln/detail/CVE-2023-34092 -- with surface area reduced to hosts having case-insensitive filesystems.
Patches
Fixed in vite@5.0.12, vite@4.5.2, vite@3.2.8, vite@2.9.17
Details
Since
picomatch
defaults to case-sensitive glob matching, but the file server doesn't discriminate; a blacklist bypass is possible.See
picomatch
usage, wherenocase
is defaulted tofalse
: https://github.com/vitejs/vite/blob/v5.1.0-beta.1/packages/vite/src/node/server/index.ts#L632By requesting raw filesystem paths using augmented casing, the matcher derived from
config.server.fs.deny
fails to block access to sensitive files.PoC
Setup
npm create vite@latest
on a Standard Azure hosted Windows 10 instance.npm run dev -- --host 0.0.0.0
custom.secret
andproduction.pem
vite.config.js
withReproduction
curl -s http://20.12.242.81:5173/@​fs//
curl -s http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/vite.config.js
curl -s http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/custom.sEcReT
Proof
Impact
Who
What
server.fs.deny
are both discoverable, and accessibleCVE-2024-31207
Summary
Vite dev server option
server.fs.deny
did not deny requests for patterns with directories. An example of such a pattern is/foo/**/*
.Impact
Only apps setting a custom
server.fs.deny
that includes a pattern with directories, and explicitly exposing the Vite dev server to the network (using--host
orserver.host
config option) are affected.Patches
Fixed in vite@5.2.6, vite@5.1.7, vite@5.0.13, vite@4.5.3, vite@3.2.10, vite@2.9.18
Details
server.fs.deny
uses picomatch with the config of{ matchBase: true }
. matchBase only matches the basename of the file, not the path due to a bug (https://github.com/micromatch/picomatch/issues/89). The vite config docs read like you should be able to set fs.deny to glob with picomatch. Vite also does not set{ dot: true }
and that causes dotfiles not to be denied unless they are explicitly defined.Reproduction
Set fs.deny to
['**/.git/**']
and then curl for/.git/config
.matchBase: true
, you can get any file under.git/
(config, HEAD, etc).matchBase: false
, you cannot get any file under.git/
(config, HEAD, etc).Release Notes
vitejs/vite (vite)
### [`v4.5.3`](https://togithub.com/vitejs/vite/compare/v4.5.2...aac695e9f8f29da43c2f7c50c549fa3d3dfeeadc) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.2...v4.5.3) ### [`v4.5.2`](https://togithub.com/vitejs/vite/releases/tag/v4.5.2) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.1...v4.5.2) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) for details. ### [`v4.5.1`](https://togithub.com/vitejs/vite/releases/tag/v4.5.1) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.0...v4.5.1) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.1/packages/vite/CHANGELOG.md) for details. ### [`v4.5.0`](https://togithub.com/vitejs/vite/releases/tag/v4.5.0) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.12...v4.5.0) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.0/packages/vite/CHANGELOG.md) for details. ### [`v4.4.12`](https://togithub.com/vitejs/vite/releases/tag/v4.4.12) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.11...v4.4.12) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.12/packages/vite/CHANGELOG.md) for details. ### [`v4.4.11`](https://togithub.com/vitejs/vite/releases/tag/v4.4.11) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.10...v4.4.11) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.11/packages/vite/CHANGELOG.md) for details. ### [`v4.4.10`](https://togithub.com/vitejs/vite/releases/tag/v4.4.10) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.9...v4.4.10) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.10/packages/vite/CHANGELOG.md) for details. ### [`v4.4.9`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small449-2023-08-07-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.8...v4.4.9) - chore: fix eslint warnings ([#14031](https://togithub.com/vitejs/vite/issues/14031)) ([4021a0e](https://togithub.com/vitejs/vite/commit/4021a0e)), closes [#14031](https://togithub.com/vitejs/vite/issues/14031) - chore(deps): update all non-major dependencies ([#13938](https://togithub.com/vitejs/vite/issues/13938)) ([a1b519e](https://togithub.com/vitejs/vite/commit/a1b519e)), closes [#13938](https://togithub.com/vitejs/vite/issues/13938) - fix: dynamic import vars ignored warning ([#14006](https://togithub.com/vitejs/vite/issues/14006)) ([4479431](https://togithub.com/vitejs/vite/commit/4479431)), closes [#14006](https://togithub.com/vitejs/vite/issues/14006) - fix(build): silence warn dynamic import module when inlineDynamicImports true ([#13970](https://togithub.com/vitejs/vite/issues/13970)) ([7a77aaf](https://togithub.com/vitejs/vite/commit/7a77aaf)), closes [#13970](https://togithub.com/vitejs/vite/issues/13970) - perf: improve build times and memory utilization ([#14016](https://togithub.com/vitejs/vite/issues/14016)) ([9d7d45e](https://togithub.com/vitejs/vite/commit/9d7d45e)), closes [#14016](https://togithub.com/vitejs/vite/issues/14016) - perf: replace startsWith with === ([#14005](https://togithub.com/vitejs/vite/issues/14005)) ([f5c1224](https://togithub.com/vitejs/vite/commit/f5c1224)), closes [#14005](https://togithub.com/vitejs/vite/issues/14005) ### [`v4.4.8`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small448-2023-07-31-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.7...v4.4.8) - fix: modulePreload false ([#13973](https://togithub.com/vitejs/vite/issues/13973)) ([488085d](https://togithub.com/vitejs/vite/commit/488085d)), closes [#13973](https://togithub.com/vitejs/vite/issues/13973) - fix: multiple entries with shared css and no JS ([#13962](https://togithub.com/vitejs/vite/issues/13962)) ([89a3db0](https://togithub.com/vitejs/vite/commit/89a3db0)), closes [#13962](https://togithub.com/vitejs/vite/issues/13962) - fix: use file extensions on type imports so they work with `moduleResolution: 'node16'` ([#13947](https://togithub.com/vitejs/vite/issues/13947)) ([aeef670](https://togithub.com/vitejs/vite/commit/aeef670)), closes [#13947](https://togithub.com/vitejs/vite/issues/13947) - fix(css): enhance error message for missing preprocessor dependency ([#11485](https://togithub.com/vitejs/vite/issues/11485)) ([65e5c22](https://togithub.com/vitejs/vite/commit/65e5c22)), closes [#11485](https://togithub.com/vitejs/vite/issues/11485) - fix(esbuild): fix static properties transpile when useDefineForClassFields false ([#13992](https://togithub.com/vitejs/vite/issues/13992)) ([4ca7c13](https://togithub.com/vitejs/vite/commit/4ca7c13)), closes [#13992](https://togithub.com/vitejs/vite/issues/13992) - fix(importAnalysis): strip url base before passing as safeModulePaths ([#13712](https://togithub.com/vitejs/vite/issues/13712)) ([1ab06a8](https://togithub.com/vitejs/vite/commit/1ab06a8)), closes [#13712](https://togithub.com/vitejs/vite/issues/13712) - fix(importMetaGlob): avoid unnecessary hmr of negative glob ([#13646](https://togithub.com/vitejs/vite/issues/13646)) ([844451c](https://togithub.com/vitejs/vite/commit/844451c)), closes [#13646](https://togithub.com/vitejs/vite/issues/13646) - fix(optimizer): avoid double-commit of optimized deps when discovery is disabled ([#13865](https://togithub.com/vitejs/vite/issues/13865)) ([df77991](https://togithub.com/vitejs/vite/commit/df77991)), closes [#13865](https://togithub.com/vitejs/vite/issues/13865) - fix(optimizer): enable experimentalDecorators by default ([#13981](https://togithub.com/vitejs/vite/issues/13981)) ([f8a5ffc](https://togithub.com/vitejs/vite/commit/f8a5ffc)), closes [#13981](https://togithub.com/vitejs/vite/issues/13981) - perf: replace startsWith with === ([#13989](https://togithub.com/vitejs/vite/issues/13989)) ([3aab14e](https://togithub.com/vitejs/vite/commit/3aab14e)), closes [#13989](https://togithub.com/vitejs/vite/issues/13989) - perf: single slash does not need to be replaced ([#13980](https://togithub.com/vitejs/vite/issues/13980)) ([66f522c](https://togithub.com/vitejs/vite/commit/66f522c)), closes [#13980](https://togithub.com/vitejs/vite/issues/13980) - perf: use Intl.DateTimeFormatter instead of toLocaleTimeString ([#13951](https://togithub.com/vitejs/vite/issues/13951)) ([af53a1d](https://togithub.com/vitejs/vite/commit/af53a1d)), closes [#13951](https://togithub.com/vitejs/vite/issues/13951) - perf: use Intl.NumberFormat instead of toLocaleString ([#13949](https://togithub.com/vitejs/vite/issues/13949)) ([a48bf88](https://togithub.com/vitejs/vite/commit/a48bf88)), closes [#13949](https://togithub.com/vitejs/vite/issues/13949) - perf: use magic-string hires boundary for sourcemaps ([#13971](https://togithub.com/vitejs/vite/issues/13971)) ([b9a8d65](https://togithub.com/vitejs/vite/commit/b9a8d65)), closes [#13971](https://togithub.com/vitejs/vite/issues/13971) - chore(reporter): remove unnecessary map ([#13972](https://togithub.com/vitejs/vite/issues/13972)) ([dd9d4c1](https://togithub.com/vitejs/vite/commit/dd9d4c1)), closes [#13972](https://togithub.com/vitejs/vite/issues/13972) - refactor: add new overload to the type of defineConfig ([#13958](https://togithub.com/vitejs/vite/issues/13958)) ([24c12fe](https://togithub.com/vitejs/vite/commit/24c12fe)), closes [#13958](https://togithub.com/vitejs/vite/issues/13958) ### [`v4.4.7`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small447-2023-07-24-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.6...v4.4.7) - fix: `optimizeDeps.include` not working with paths inside packages ([#13922](https://togithub.com/vitejs/vite/issues/13922)) ([06e4f57](https://togithub.com/vitejs/vite/commit/06e4f57)), closes [#13922](https://togithub.com/vitejs/vite/issues/13922) - fix: lightningcss fails with html-proxy ([#13776](https://togithub.com/vitejs/vite/issues/13776)) ([6b56094](https://togithub.com/vitejs/vite/commit/6b56094)), closes [#13776](https://togithub.com/vitejs/vite/issues/13776) - fix: prepend `config.base` to vite/env path ([#13941](https://togithub.com/vitejs/vite/issues/13941)) ([8e6cee8](https://togithub.com/vitejs/vite/commit/8e6cee8)), closes [#13941](https://togithub.com/vitejs/vite/issues/13941) - fix(html): support `import.meta.env` define replacement without quotes ([#13425](https://togithub.com/vitejs/vite/issues/13425)) ([883089c](https://togithub.com/vitejs/vite/commit/883089c)), closes [#13425](https://togithub.com/vitejs/vite/issues/13425) - fix(proxy): handle error when proxy itself errors ([#13929](https://togithub.com/vitejs/vite/issues/13929)) ([4848e41](https://togithub.com/vitejs/vite/commit/4848e41)), closes [#13929](https://togithub.com/vitejs/vite/issues/13929) - chore(eslint): allow type annotations ([#13920](https://togithub.com/vitejs/vite/issues/13920)) ([d1264fd](https://togithub.com/vitejs/vite/commit/d1264fd)), closes [#13920](https://togithub.com/vitejs/vite/issues/13920) ### [`v4.4.6`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small446-2023-07-21-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.5...v4.4.6) - fix: constrain inject helpers for iife ([#13909](https://togithub.com/vitejs/vite/issues/13909)) ([c89f677](https://togithub.com/vitejs/vite/commit/c89f677)), closes [#13909](https://togithub.com/vitejs/vite/issues/13909) - fix: display manualChunks warning only when a function is not used ([#13797](https://togithub.com/vitejs/vite/issues/13797)) ([#13798](https://togithub.com/vitejs/vite/issues/13798)) ([51c271f](https://togithub.com/vitejs/vite/commit/51c271f)), closes [#13797](https://togithub.com/vitejs/vite/issues/13797) [#13798](https://togithub.com/vitejs/vite/issues/13798) - fix: do not append `browserHash` on optimized deps during build ([#13906](https://togithub.com/vitejs/vite/issues/13906)) ([0fb2340](https://togithub.com/vitejs/vite/commit/0fb2340)), closes [#13906](https://togithub.com/vitejs/vite/issues/13906) - fix: use Bun's implementation of `ws` instead of the bundled one ([#13901](https://togithub.com/vitejs/vite/issues/13901)) ([049404c](https://togithub.com/vitejs/vite/commit/049404c)), closes [#13901](https://togithub.com/vitejs/vite/issues/13901) - feat(client): add guide to press Esc for closing the overlay ([#13896](https://togithub.com/vitejs/vite/issues/13896)) ([da389cc](https://togithub.com/vitejs/vite/commit/da389cc)), closes [#13896](https://togithub.com/vitejs/vite/issues/13896) ### [`v4.4.5`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small445-2023-07-20-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.4...v4.4.5) - fix: "EISDIR: illegal operation on a directory, realpath" error on RA⦠([#13655](https://togithub.com/vitejs/vite/issues/13655)) ([6bd5434](https://togithub.com/vitejs/vite/commit/6bd5434)), closes [#13655](https://togithub.com/vitejs/vite/issues/13655) - fix: transform error message add file info ([#13687](https://togithub.com/vitejs/vite/issues/13687)) ([6dca41c](https://togithub.com/vitejs/vite/commit/6dca41c)), closes [#13687](https://togithub.com/vitejs/vite/issues/13687) - fix: warn when publicDir and outDir are nested ([#13742](https://togithub.com/vitejs/vite/issues/13742)) ([4eb3154](https://togithub.com/vitejs/vite/commit/4eb3154)), closes [#13742](https://togithub.com/vitejs/vite/issues/13742) - fix(build): remove warning about ineffective dynamic import from node_modules ([#13884](https://togithub.com/vitejs/vite/issues/13884)) ([33002dd](https://togithub.com/vitejs/vite/commit/33002dd)), closes [#13884](https://togithub.com/vitejs/vite/issues/13884) - fix(build): style insert order for UMD builds (fix [#13668](https://togithub.com/vitejs/vite/issues/13668)) ([#13669](https://togithub.com/vitejs/vite/issues/13669)) ([49a1b99](https://togithub.com/vitejs/vite/commit/49a1b99)), closes [#13668](https://togithub.com/vitejs/vite/issues/13668) [#13669](https://togithub.com/vitejs/vite/issues/13669) - fix(deps): update all non-major dependencies ([#13872](https://togithub.com/vitejs/vite/issues/13872)) ([975a631](https://togithub.com/vitejs/vite/commit/975a631)), closes [#13872](https://togithub.com/vitejs/vite/issues/13872) - fix(types): narrow down the return type of `defineConfig` ([#13792](https://togithub.com/vitejs/vite/issues/13792)) ([c971f26](https://togithub.com/vitejs/vite/commit/c971f26)), closes [#13792](https://togithub.com/vitejs/vite/issues/13792) - chore: fix typos ([#13862](https://togithub.com/vitejs/vite/issues/13862)) ([f54e8da](https://togithub.com/vitejs/vite/commit/f54e8da)), closes [#13862](https://togithub.com/vitejs/vite/issues/13862) - chore: replace `any` with `string` ([#13850](https://togithub.com/vitejs/vite/issues/13850)) ([4606fd8](https://togithub.com/vitejs/vite/commit/4606fd8)), closes [#13850](https://togithub.com/vitejs/vite/issues/13850) - chore(deps): update dependency prettier to v3 ([#13759](https://togithub.com/vitejs/vite/issues/13759)) ([5a56941](https://togithub.com/vitejs/vite/commit/5a56941)), closes [#13759](https://togithub.com/vitejs/vite/issues/13759) - docs: fix build.cssMinify link ([#13840](https://togithub.com/vitejs/vite/issues/13840)) ([8a2a3e1](https://togithub.com/vitejs/vite/commit/8a2a3e1)), closes [#13840](https://togithub.com/vitejs/vite/issues/13840) ### [`v4.4.4`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small444-2023-07-14-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.3...v4.4.4) - chore: warning about ssr cjs format removal ([#13827](https://togithub.com/vitejs/vite/issues/13827)) ([4646e9f](https://togithub.com/vitejs/vite/commit/4646e9f)), closes [#13827](https://togithub.com/vitejs/vite/issues/13827) - fix(esbuild): enable experimentalDecorators by default ([#13805](https://togithub.com/vitejs/vite/issues/13805)) ([e8880f0](https://togithub.com/vitejs/vite/commit/e8880f0)), closes [#13805](https://togithub.com/vitejs/vite/issues/13805) - fix(scan): skip tsconfigRaw fallback if tsconfig is set ([#13823](https://togithub.com/vitejs/vite/issues/13823)) ([b6155a1](https://togithub.com/vitejs/vite/commit/b6155a1)), closes [#13823](https://togithub.com/vitejs/vite/issues/13823) - feat(client): close `vite-error-overlay` with Escape key ([#13795](https://togithub.com/vitejs/vite/issues/13795)) ([85bdcda](https://togithub.com/vitejs/vite/commit/85bdcda)), closes [#13795](https://togithub.com/vitejs/vite/issues/13795) ### [`v4.4.3`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small443-2023-07-11-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.2...v4.4.3) - fix: avoid early error when server is closed in ssr ([#13787](https://togithub.com/vitejs/vite/issues/13787)) ([89d01eb](https://togithub.com/vitejs/vite/commit/89d01eb)), closes [#13787](https://togithub.com/vitejs/vite/issues/13787) - fix(deps): update all non-major dependencies ([#13758](https://togithub.com/vitejs/vite/issues/13758)) ([8ead116](https://togithub.com/vitejs/vite/commit/8ead116)), closes [#13758](https://togithub.com/vitejs/vite/issues/13758) - fix(server): remove restart guard on restart ([#13789](https://togithub.com/vitejs/vite/issues/13789)) ([2a38ef7](https://togithub.com/vitejs/vite/commit/2a38ef7)), closes [#13789](https://togithub.com/vitejs/vite/issues/13789) ### [`v4.4.2`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small442-2023-07-07-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.1...v4.4.2) - fix(css): use single postcss instance ([#13738](https://togithub.com/vitejs/vite/issues/13738)) ([c02fac4](https://togithub.com/vitejs/vite/commit/c02fac4)), closes [#13738](https://togithub.com/vitejs/vite/issues/13738) ### [`v4.4.1`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small441-2023-07-06-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.4.0...v4.4.1) - fix: revert [#13073](https://togithub.com/vitejs/vite/issues/13073), use consistent virtual module ID in module graph ([#13734](https://togithub.com/vitejs/vite/issues/13734)) ([f589ac0](https://togithub.com/vitejs/vite/commit/f589ac0)), closes [#13073](https://togithub.com/vitejs/vite/issues/13073) [#13734](https://togithub.com/vitejs/vite/issues/13734) - fix: revert import config module as data ([#13731](https://togithub.com/vitejs/vite/issues/13731)) ([b0bfa01](https://togithub.com/vitejs/vite/commit/b0bfa01)), closes [#13731](https://togithub.com/vitejs/vite/issues/13731) - chore: changelog notes and clean for 4.4 ([#13728](https://togithub.com/vitejs/vite/issues/13728)) ([3f4e36e](https://togithub.com/vitejs/vite/commit/3f4e36e)), closes [#13728](https://togithub.com/vitejs/vite/issues/13728) ### [`v4.4.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#440-2023-07-06) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.3.9...v4.4.0) ##### Experimental support for Lightning CSS Starting from Vite 4.4, there is experimental support for [Lightning CSS](https://lightningcss.dev/). You can opt into it by adding [`css.transformer: 'lightningcss'`](https://main.vitejs.dev/config/shared-options.html#css-transformer) to your config file and install the optional [`lightningcss`](https://www.npmjs.com/package/lightningcss) dev dependency. If enabled, CSS files will be processed by Lightning CSS instead of PostCSS. Lightning CSS can also be used as the CSS minifier with [`build.cssMinify: 'lightningcss'`](https://main.vitejs.dev/config/build-options.html#build-cssminify). See beta docs at the [Lighting CSS guide](https://main.vitejs.dev/guide/features.html#lightning-css). ##### esbuild 0.18 update [esbuild 0.18](https://togithub.com/evanw/esbuild/blob/main/CHANGELOG.md#0180) contains backwards-incompatible changes to esbuild's handling of `tsconfig.json` files. We think they shouldn't affect Vite users, you can review [#13525](https://togithub.com/vitejs/vite/issues/13525) for more information. ##### Templates for Solid and Qwik in create-vite New starter templates have been added to [create-vite](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) for [Solid](https://www.solidjs.com/) and [Qwik](https://qwik.builder.io/). Try them online at [vite.new/solid-ts](https://vite.new/solid-ts) and [vite.new/qwik-ts](https://vite.new/qwik-ts). ##### Korean Translation Vite's docs are now translated to Korean, available at [ko.vitejs.dev](https://ko.vitejs.dev). ##### Features - feat: preview mode add keyboard shortcuts ([#12968](https://togithub.com/vitejs/vite/issues/12968)) ([126e93e](https://togithub.com/vitejs/vite/commit/126e93e)), closes [#12968](https://togithub.com/vitejs/vite/issues/12968) - feat: asset type add apng ([#13294](https://togithub.com/vitejs/vite/issues/13294)) ([a11b6f6](https://togithub.com/vitejs/vite/commit/a11b6f6)), closes [#13294](https://togithub.com/vitejs/vite/issues/13294) - feat: emit event to handle chunk load errors ([#12084](https://togithub.com/vitejs/vite/issues/12084)) ([2eca54e](https://togithub.com/vitejs/vite/commit/2eca54e)), closes [#12084](https://togithub.com/vitejs/vite/issues/12084) - feat: import public non-asset URL ([#13422](https://togithub.com/vitejs/vite/issues/13422)) ([3a98558](https://togithub.com/vitejs/vite/commit/3a98558)), closes [#13422](https://togithub.com/vitejs/vite/issues/13422) - feat: support files for `fs.allow` ([#12863](https://togithub.com/vitejs/vite/issues/12863)) ([4a06e66](https://togithub.com/vitejs/vite/commit/4a06e66)), closes [#12863](https://togithub.com/vitejs/vite/issues/12863) - feat(build): warn dynamic import module with a static import alongside ([#12850](https://togithub.com/vitejs/vite/issues/12850)) ([127c334](https://togithub.com/vitejs/vite/commit/127c334)), closes [#12850](https://togithub.com/vitejs/vite/issues/12850) - feat(client): add debounce on page reload ([#13545](https://togithub.com/vitejs/vite/issues/13545)) ([d080b51](https://togithub.com/vitejs/vite/commit/d080b51)), closes [#13545](https://togithub.com/vitejs/vite/issues/13545) - feat(client): add WebSocket connections events ([#13334](https://togithub.com/vitejs/vite/issues/13334)) ([eb75103](https://togithub.com/vitejs/vite/commit/eb75103)), closes [#13334](https://togithub.com/vitejs/vite/issues/13334) - feat(config): friendly ESM file require error ([#13283](https://togithub.com/vitejs/vite/issues/13283)) ([b9a6ba0](https://togithub.com/vitejs/vite/commit/b9a6ba0)), closes [#13283](https://togithub.com/vitejs/vite/issues/13283) - feat(css): add support for Lightning CSS ([#12807](https://togithub.com/vitejs/vite/issues/12807)) ([c6c5d49](https://togithub.com/vitejs/vite/commit/c6c5d49)), closes [#12807](https://togithub.com/vitejs/vite/issues/12807) - feat(css): support at import preprocessed styles ([#8400](https://togithub.com/vitejs/vite/issues/8400)) ([2bd6077](https://togithub.com/vitejs/vite/commit/2bd6077)), closes [#8400](https://togithub.com/vitejs/vite/issues/8400) - feat(html): support image set in inline style ([#13473](https://togithub.com/vitejs/vite/issues/13473)) ([2c0faba](https://togithub.com/vitejs/vite/commit/2c0faba)), closes [#13473](https://togithub.com/vitejs/vite/issues/13473) - feat(importMetaGlob): support sub imports pattern ([#12467](https://togithub.com/vitejs/vite/issues/12467)) ([e355c9c](https://togithub.com/vitejs/vite/commit/e355c9c)), closes [#12467](https://togithub.com/vitejs/vite/issues/12467) - feat(optimizer): support glob includes ([#12414](https://togithub.com/vitejs/vite/issues/12414)) ([7792515](https://togithub.com/vitejs/vite/commit/7792515)), closes [#12414](https://togithub.com/vitejs/vite/issues/12414) - feat!: update esbuild to 0.18.2 ([#13525](https://togithub.com/vitejs/vite/issues/13525)) ([ab967c0](https://togithub.com/vitejs/vite/commit/ab967c0)), closes [#13525](https://togithub.com/vitejs/vite/issues/13525) ##### Bug Fixes - fix: check document before detect script rel ([#13559](https://togithub.com/vitejs/vite/issues/13559)) ([be4b0c0](https://togithub.com/vitejs/vite/commit/be4b0c0)), closes [#13559](https://togithub.com/vitejs/vite/issues/13559) - fix(define): stringify object parse error in build mode ([#13600](https://togithub.com/vitejs/vite/issues/13600)) ([71516db](https://togithub.com/vitejs/vite/commit/71516db)), closes [#13600](https://togithub.com/vitejs/vite/issues/13600) - fix(deps): update all non-major dependencies ([#13701](https://togithub.com/vitejs/vite/issues/13701)) ([02c6bc3](https://togithub.com/vitejs/vite/commit/02c6bc3)), closes [#13701](https://togithub.com/vitejs/vite/issues/13701) - fix(esbuild): use `useDefineForClassFields: false` when no `compilerOptions.target` is declared ([#13](https://togithub.com/vitejs/vite/issues/13) ([7ef2472](https://togithub.com/vitejs/vite/commit/7ef2472)), closes [#13708](https://togithub.com/vitejs/vite/issues/13708) - fix(pluginContainer): drop previous sourcesContent ([#13722](https://togithub.com/vitejs/vite/issues/13722)) ([9310b3a](https://togithub.com/vitejs/vite/commit/9310b3a)), closes [#13722](https://togithub.com/vitejs/vite/issues/13722) - fix: lightningCSS should load external URL in CSS file ([#13692](https://togithub.com/vitejs/vite/issues/13692)) ([8517645](https://togithub.com/vitejs/vite/commit/8517645)), closes [#13692](https://togithub.com/vitejs/vite/issues/13692) - fix: shortcut open browser when set host ([#13677](https://togithub.com/vitejs/vite/issues/13677)) ([6f1c55e](https://togithub.com/vitejs/vite/commit/6f1c55e)), closes [#13677](https://togithub.com/vitejs/vite/issues/13677) - fix(cli): convert the sourcemap option to boolean (fix [#13638](https://togithub.com/vitejs/vite/issues/13638)) ([#13663](https://togithub.com/vitejs/vite/issues/13663)) ([d444bfe](https://togithub.com/vitejs/vite/commit/d444bfe)), closes [#13638](https://togithub.com/vitejs/vite/issues/13638) [#13663](https://togithub.com/vitejs/vite/issues/13663) - fix(css): use esbuild legalComments config when minifying CSS ([#13661](https://togithub.com/vitejs/vite/issues/13661)) ([2d9008e](https://togithub.com/vitejs/vite/commit/2d9008e)), closes [#13661](https://togithub.com/vitejs/vite/issues/13661) - fix(sourcemap): preserve original sourcesContent ([#13662](https://togithub.com/vitejs/vite/issues/13662)) ([f6362b6](https://togithub.com/vitejs/vite/commit/f6362b6)), closes [#13662](https://togithub.com/vitejs/vite/issues/13662) - fix(ssr): transform superclass identifier ([#13635](https://togithub.com/vitejs/vite/issues/13635)) ([c5b2c8f](https://togithub.com/vitejs/vite/commit/c5b2c8f)), closes [#13635](https://togithub.com/vitejs/vite/issues/13635) - fix: show error position ([#13623](https://togithub.com/vitejs/vite/issues/13623)) ([90271a6](https://togithub.com/vitejs/vite/commit/90271a6)), closes [#13623](https://togithub.com/vitejs/vite/issues/13623) - fix(hmr): only invalidate `lastHMRTimestamp` of importers if the invalidated module is not a HMR bou ([1143e0b](https://togithub.com/vitejs/vite/commit/1143e0b)), closes [#13024](https://togithub.com/vitejs/vite/issues/13024) - fix(indexHtml): decode html URI ([#13581](https://togithub.com/vitejs/vite/issues/13581)) ([f8868af](https://togithub.com/vitejs/vite/commit/f8868af)), closes [#13581](https://togithub.com/vitejs/vite/issues/13581) - fix: avoid binding ClassExpression ([#13572](https://togithub.com/vitejs/vite/issues/13572)) ([1a0c806](https://togithub.com/vitejs/vite/commit/1a0c806)), closes [#13572](https://togithub.com/vitejs/vite/issues/13572) - fix: the shortcut fails to open browser when set the host ([#13579](https://togithub.com/vitejs/vite/issues/13579)) ([e0a48c5](https://togithub.com/vitejs/vite/commit/e0a48c5)), closes [#13579](https://togithub.com/vitejs/vite/issues/13579) - fix(proxy): forward SSE close event ([#13578](https://togithub.com/vitejs/vite/issues/13578)) ([4afbccb](https://togithub.com/vitejs/vite/commit/4afbccb)), closes [#13578](https://togithub.com/vitejs/vite/issues/13578) - fix: allow using vite as a proxy for another vite server ([#13218](https://togithub.com/vitejs/vite/issues/13218)) ([711dd80](https://togithub.com/vitejs/vite/commit/711dd80)), closes [#13218](https://togithub.com/vitejs/vite/issues/13218) - fix: await requests to before server restart ([#13262](https://togithub.com/vitejs/vite/issues/13262)) ([0464398](https://togithub.com/vitejs/vite/commit/0464398)), closes [#13262](https://togithub.com/vitejs/vite/issues/13262) - fix: esm detection with `export const { A, B }` pattern ([#13483](https://togithub.com/vitejs/vite/issues/13483)) ([ea1bcc9](https://togithub.com/vitejs/vite/commit/ea1bcc9)), closes [#13483](https://togithub.com/vitejs/vite/issues/13483) - fix: keep track of ssr version of imported modules separately ([#11973](https://togithub.com/vitejs/vite/issues/11973)) ([8fe6952](https://togithub.com/vitejs/vite/commit/8fe6952)), closes [#11973](https://togithub.com/vitejs/vite/issues/11973) - fix: make optimize error available to meta-framework ([#13495](https://togithub.com/vitejs/vite/issues/13495)) ([b70e783](https://togithub.com/vitejs/vite/commit/b70e783)), closes [#13495](https://togithub.com/vitejs/vite/issues/13495) - fix: only show the listened IP when host is specified ([#13412](https://togithub.com/vitejs/vite/issues/13412)) ([20b0cae](https://togithub.com/vitejs/vite/commit/20b0cae)), closes [#13412](https://togithub.com/vitejs/vite/issues/13412) - fix: race condition creation module in graph in transformRequest ([#13085](https://togithub.com/vitejs/vite/issues/13085)) ([43cbbcf](https://togithub.com/vitejs/vite/commit/43cbbcf)), closes [#13085](https://togithub.com/vitejs/vite/issues/13085) - fix: remove deprecated config.server.base ([#13482](https://togithub.com/vitejs/vite/issues/13482)) ([dc597bd](https://togithub.com/vitejs/vite/commit/dc597bd)), closes [#13482](https://togithub.com/vitejs/vite/issues/13482) - fix: remove extra path shorten when resolving from a dir ([#13381](https://togithub.com/vitejs/vite/issues/13381)) ([5503198](https://togithub.com/vitejs/vite/commit/5503198)), closes [#13381](https://togithub.com/vitejs/vite/issues/13381) - fix: show network URLs when `--host 0.0.0.0` ([#13438](https://togithub.com/vitejs/vite/issues/13438)) ([00ee8c1](https://togithub.com/vitejs/vite/commit/00ee8c1)), closes [#13438](https://togithub.com/vitejs/vite/issues/13438) - fix: timestamp config dynamicImport ([#13502](https://togithub.com/vitejs/vite/issues/13502)) ([6a87c65](https://togithub.com/vitejs/vite/commit/6a87c65)), closes [#13502](https://togithub.com/vitejs/vite/issues/13502) - fix: unexpected config temporary file ([#13269](https://togithub.com/vitejs/vite/issues/13269)) ([ff3ce31](https://togithub.com/vitejs/vite/commit/ff3ce31)), closes [#13269](https://togithub.com/vitejs/vite/issues/13269) - fix: use consistent virtual module ID in module graph ([#13073](https://togithub.com/vitejs/vite/issues/13073)) ([aa1776f](https://togithub.com/vitejs/vite/commit/aa1776f)), closes [#13073](https://togithub.com/vitejs/vite/issues/13073) - fix(build): make output warning message clearer ([#12924](https://togithub.com/vitejs/vite/issues/12924)) ([54ab3c8](https://togithub.com/vitejs/vite/commit/54ab3c8)), closes [#12924](https://togithub.com/vitejs/vite/issues/12924) - fix(debug): import performance from perf_hooks ([#13464](https://togithub.com/vitejs/vite/issues/13464)) ([d458ccd](https://togithub.com/vitejs/vite/commit/d458ccd)), closes [#13464](https://togithub.com/vitejs/vite/issues/13464) - fix(deps): update all non-major dependencies ([#13059](https://togithub.com/vitejs/vite/issues/13059)) ([123ef4c](https://togithub.com/vitejs/vite/commit/123ef4c)), closes [#13059](https://togithub.com/vitejs/vite/issues/13059) - fix(deps): update all non-major dependencies ([#13488](https://togithub.com/vitejs/vite/issues/13488)) ([bd09248](https://togithub.com/vitejs/vite/commit/bd09248)), closes [#13488](https://togithub.com/vitejs/vite/issues/13488) - fix(deps): update sirv to 2.0.3 ([#13057](https://togithub.com/vitejs/vite/issues/13057)) ([d814d6c](https://togithub.com/vitejs/vite/commit/d814d6c)), closes [#13057](https://togithub.com/vitejs/vite/issues/13057) - fix(mergeConfig): don't accept callback config ([#13135](https://togithub.com/vitejs/vite/issues/13135)) ([998512b](https://togithub.com/vitejs/vite/commit/998512b)), closes [#13135](https://togithub.com/vitejs/vite/issues/13135) - fix(optimizer): include exports for css modules ([#13519](https://togithub.com/vitejs/vite/issues/13519)) ([1fd9919](https://togithub.com/vitejs/vite/commit/1fd9919)), closes [#13519](https://togithub.com/vitejs/vite/issues/13519) - fix(resolve): always use `module` condition ([#13370](https://togithub.com/vitejs/vite/issues/13370)) ([367920b](https://togithub.com/vitejs/vite/commit/367920b)), closes [#13370](https://togithub.com/vitejs/vite/issues/13370) - fix(ssr): fix crash when a pnpm/Yarn workspace depends on a CJS package ([#9763](https://togithub.com/vitejs/vite/issues/9763)) ([9e1086b](https://togithub.com/vitejs/vite/commit/9e1086b)), closes [#9763](https://togithub.com/vitejs/vite/issues/9763) ##### Previous Changelogs ##### [4.4.0-beta.4](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.3....v4.4.0-beta.4) (2023-07-03) See [4.4.0-beta.4 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.4/packages/vite/CHANGELOG.md) ##### [4.4.0-beta.3](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.2....v4.4.0-beta.3) (2023-06-25) See [4.4.0-beta.3 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.3/packages/vite/CHANGELOG.md) ##### [4.4.0-beta.2](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.1....v4.4.0-beta.2) (2023-06-22) See [4.4.0-beta.2 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.2/packages/vite/CHANGELOG.md) ##### [4.4.0-beta.1](https://togithub.com/vitejs/vite/compare/v4.4.0-beta.0....v4.4.0-beta.1) (2023-06-21) See [4.4.0-beta.1 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.1/packages/vite/CHANGELOG.md) ##### [4.4.0-beta.0](https://togithub.com/vitejs/vite/compare/v4.3.9....v4.4.0-beta.0) (2023-06-20) See [4.4.0-beta.0 changelog](https://togithub.com/vitejs/vite/blob/v4.4.0-beta.0/packages/vite/CHANGELOG.md)Configuration
π Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.