Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

feat(schema, vite)!: enable vite-node by default #6217

Merged
merged 14 commits into from
Aug 13, 2022
20 changes: 15 additions & 5 deletions packages/schema/src/config/experimental.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@ export default {
$resolve: (val, get) => val ?? (get('dev') && get('experimental.viteNode')) ?? false
},

/**
* Use vite-node for on-demand server chunk loading
*/
viteNode: process.env.EXPERIMENTAL_VITE_NODE ? true : false,

/**
* Enable Vue's reactivity transform
* @see https://vuejs.org/guide/extras/reactivity-transform.html
Expand All @@ -30,5 +25,20 @@ export default {
* @see https://github.com/nuxt/framework/pull/5750
*/
treeshakeClientOnly: false,

/**
* Use vite-node for on-demand server chunk loading
*
* @deprecated use `vite.viteNode`
*/
viteNode: {
$resolve: (val) => {
if (val === true)
console.warn('`vite-node` is now enabled by default. You can safely remove `experimental.viteNode` from your config.')
antfu marked this conversation as resolved.
Show resolved Hide resolved
else if (val === false)
console.warn('`vite-node` is now enabled by default. To disable it, set `vite.viteNode` to `false` instead.')
return val
}
},
}
}
28 changes: 19 additions & 9 deletions packages/schema/src/config/vite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,6 @@ export default {
publicDir: {
$resolve: (val, get) => val ?? resolve(get('srcDir'), get('dir').public),
},
vue: {
isProduction: {
$resolve: (val, get) => val ?? !get('dev'),
},
template: { compilerOptions: {
$resolve: (val, get) => val ?? get('vue').compilerOptions }
},
},
optimizeDeps: {
exclude: {
$resolve: (val, get) => [
Expand Down Expand Up @@ -73,6 +65,24 @@ export default {
]
}
}
}
},

// Extended options
/**
* Options passed to @vitejs/plugin-vue
* @see https://github.com/vitejs/vite/tree/main/packages/plugin-vue
*/
vue: {
isProduction: {
$resolve: (val, get) => val ?? !get('dev'),
},
template: { compilerOptions: {
$resolve: (val, get) => val ?? get('vue').compilerOptions }
},
},
/**
* Use vite-node for on-demand server chunk loading
*/
viteNode: true
}
}
4 changes: 2 additions & 2 deletions packages/vite/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,10 @@ export async function buildServer (ctx: ViteBuildContext) {
// Initialize plugins
await viteServer.pluginContainer.buildStart({})

if (ctx.nuxt.options.experimental.viteNode) {
logger.info('Vite server using experimental `vite-node`...')
if (ctx.config.viteNode) {
await import('./vite-node').then(r => r.initViteNodeServer(ctx))
} else {
logger.info('Vite server using legacy `dev-bundler`...')
await import('./dev-bundler').then(r => r.initViteDevBundler(ctx, onBuild))
}
}
1 change: 1 addition & 0 deletions packages/vite/src/vite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { composableKeysPlugin } from './plugins/composable-keys'
export interface ViteOptions extends InlineConfig {
vue?: Options
ssr?: SSROptions
viteNode?: boolean
antfu marked this conversation as resolved.
Show resolved Hide resolved
}

export interface ViteBuildContext {
Expand Down