mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-22 13:45:18 +00:00
fix(vite): allow overriding client hmr options (#6082)
Co-authored-by: Pooya Parsa <pooya@pi0.io>
This commit is contained in:
parent
210cf30691
commit
8298cf27e6
@ -2,11 +2,12 @@ import { join, resolve } from 'pathe'
|
||||
import * as vite from 'vite'
|
||||
import vuePlugin from '@vitejs/plugin-vue'
|
||||
import viteJsxPlugin from '@vitejs/plugin-vue-jsx'
|
||||
import type { Connect } from 'vite'
|
||||
import type { Connect, HmrOptions } from 'vite'
|
||||
import { logger } from '@nuxt/kit'
|
||||
import { getPort } from 'get-port-please'
|
||||
import { joinURL, withLeadingSlash, withoutLeadingSlash, withTrailingSlash } from 'ufo'
|
||||
import escapeRE from 'escape-string-regexp'
|
||||
import defu from 'defu'
|
||||
import { cacheDirPlugin } from './plugins/cache-dir'
|
||||
import { analyzePlugin } from './plugins/analyze'
|
||||
import { wpfs } from './utils/wpfs'
|
||||
@ -16,11 +17,6 @@ import { devStyleSSRPlugin } from './plugins/dev-ssr-css'
|
||||
import { viteNodePlugin } from './vite-node'
|
||||
|
||||
export async function buildClient (ctx: ViteBuildContext) {
|
||||
const hmrPortDefault = 24678 // Vite's default HMR port
|
||||
const hmrPort = await getPort({
|
||||
port: hmrPortDefault,
|
||||
ports: Array.from({ length: 20 }, (_, i) => hmrPortDefault + 1 + i)
|
||||
})
|
||||
const clientConfig: vite.InlineConfig = vite.mergeConfig(ctx.config, {
|
||||
experimental: {
|
||||
renderBuiltUrl: (filename, { type, hostType }) => {
|
||||
@ -66,12 +62,6 @@ export async function buildClient (ctx: ViteBuildContext) {
|
||||
],
|
||||
appType: 'custom',
|
||||
server: {
|
||||
hmr: {
|
||||
// https://github.com/nuxt/framework/issues/4191
|
||||
protocol: 'ws',
|
||||
clientPort: hmrPort,
|
||||
port: hmrPort
|
||||
},
|
||||
middlewareMode: true
|
||||
}
|
||||
} as ViteOptions)
|
||||
@ -82,6 +72,19 @@ export async function buildClient (ctx: ViteBuildContext) {
|
||||
clientConfig.server.hmr = false
|
||||
}
|
||||
|
||||
if (clientConfig.server.hmr !== false) {
|
||||
const hmrPortDefault = 24678 // Vite's default HMR port
|
||||
const hmrPort = await getPort({
|
||||
port: hmrPortDefault,
|
||||
ports: Array.from({ length: 20 }, (_, i) => hmrPortDefault + 1 + i)
|
||||
})
|
||||
clientConfig.server.hmr = defu(clientConfig.server.hmr as HmrOptions, {
|
||||
// https://github.com/nuxt/framework/issues/4191
|
||||
protocol: 'ws',
|
||||
port: hmrPort
|
||||
})
|
||||
}
|
||||
|
||||
// Add analyze plugin if needed
|
||||
if (ctx.nuxt.options.build.analyze) {
|
||||
clientConfig.plugins.push(...analyzePlugin(ctx))
|
||||
|
@ -96,7 +96,8 @@ export async function buildServer (ctx: ViteBuildContext) {
|
||||
},
|
||||
server: {
|
||||
// https://github.com/vitest-dev/vitest/issues/229#issuecomment-1002685027
|
||||
preTransformRequests: false
|
||||
preTransformRequests: false,
|
||||
hmr: false
|
||||
},
|
||||
plugins: [
|
||||
cacheDirPlugin(ctx.nuxt.options.rootDir, 'server'),
|
||||
|
Loading…
Reference in New Issue
Block a user