perf(vite): mark more core functions as side-effect free (#19508)

This commit is contained in:
Daniel Roe 2023-03-07 22:51:08 +00:00 committed by GitHub
parent 0b82f67514
commit c2ab76d68e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 6 additions and 6 deletions

View File

@ -10,7 +10,7 @@ import type { H3Event } from 'h3'
import type { NuxtIslandContext } from '../core/runtime/nitro/renderer' import type { NuxtIslandContext } from '../core/runtime/nitro/renderer'
import type { RuntimeConfig, AppConfigInput } from 'nuxt/schema' import type { RuntimeConfig, AppConfigInput } from 'nuxt/schema'
const nuxtAppCtx = getContext<NuxtApp>('nuxt-app') const nuxtAppCtx = /* #__PURE__ */ getContext<NuxtApp>('nuxt-app')
type NuxtMeta = { type NuxtMeta = {
htmlAttrs?: string htmlAttrs?: string

View File

@ -218,7 +218,7 @@ const inlineConfig = ${JSON.stringify(nuxt.options.appConfig, null, 2)}
${app.configs.map((id: string, index: number) => `import ${`cfg${index}`} from ${JSON.stringify(id)}`).join('\n')} ${app.configs.map((id: string, index: number) => `import ${`cfg${index}`} from ${JSON.stringify(id)}`).join('\n')}
export default defuFn(${app.configs.map((_id: string, index: number) => `cfg${index}`).concat(['inlineConfig']).join(', ')}) export default /* #__PURE__ */ defuFn(${app.configs.map((_id: string, index: number) => `cfg${index}`).concat(['inlineConfig']).join(', ')})
` `
} }
} }

View File

@ -73,7 +73,7 @@ export async function buildClient (ctx: ViteBuildContext) {
viteNodePlugin(ctx), viteNodePlugin(ctx),
pureAnnotationsPlugin.vite({ pureAnnotationsPlugin.vite({
sourcemap: ctx.nuxt.options.sourcemap.client, sourcemap: ctx.nuxt.options.sourcemap.client,
functions: ['defineComponent', 'defineAsyncComponent', 'defineNuxtLink', 'createClientOnly'] functions: ['defineComponent', 'defineAsyncComponent', 'defineNuxtLink', 'createClientOnly', 'defineNuxtPlugin', 'defineNuxtRouteMiddleware', 'defineNuxtComponent', 'useRuntimeConfig']
}) })
], ],
appType: 'custom', appType: 'custom',

View File

@ -114,7 +114,7 @@ export async function buildServer (ctx: ViteBuildContext) {
viteJsxPlugin(ctx.config.vueJsx), viteJsxPlugin(ctx.config.vueJsx),
pureAnnotationsPlugin.vite({ pureAnnotationsPlugin.vite({
sourcemap: ctx.nuxt.options.sourcemap.server, sourcemap: ctx.nuxt.options.sourcemap.server,
functions: ['defineComponent', 'defineAsyncComponent', 'defineNuxtLink', 'createClientOnly'] functions: ['defineComponent', 'defineAsyncComponent', 'defineNuxtLink', 'createClientOnly', 'defineNuxtPlugin', 'defineNuxtRouteMiddleware', 'defineNuxtComponent', 'useRuntimeConfig']
}) })
] ]
} as ViteOptions) } as ViteOptions)

View File

@ -26,7 +26,7 @@ describe.skipIf(isWindows)('minimal nuxt application', () => {
it('default client bundle size', async () => { it('default client bundle size', async () => {
stats.client = await analyzeSizes('**/*.js', publicDir) stats.client = await analyzeSizes('**/*.js', publicDir)
expect(stats.client.totalBytes).toBeLessThan(108000) expect(stats.client.totalBytes).toBeLessThan(106000)
expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(`
[ [
"_nuxt/_plugin-vue_export-helper.js", "_nuxt/_plugin-vue_export-helper.js",
@ -40,7 +40,7 @@ describe.skipIf(isWindows)('minimal nuxt application', () => {
it('default server bundle size', async () => { it('default server bundle size', async () => {
stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
expect(stats.server.totalBytes).toBeLessThan(94000) expect(stats.server.totalBytes).toBeLessThan(93000)
const modules = await analyzeSizes('node_modules/**/*', serverDir) const modules = await analyzeSizes('node_modules/**/*', serverDir)
expect(modules.totalBytes).toBeLessThan(2722000) expect(modules.totalBytes).toBeLessThan(2722000)