1- import { addDevServerHandler , useNuxt , tryUseNuxt } from '@nuxt/kit'
1+ import { addDevServerHandler , extendRouteRules , useNuxt , tryUseNuxt } from '@nuxt/kit'
22import { createError , eventHandler , lazyEventHandler } from 'h3'
33import { fetch } from 'ofetch'
4- import { defu } from 'defu'
54import type { NitroConfig } from 'nitropack'
65import { joinURL } from 'ufo'
76import { join , resolve } from 'pathe'
@@ -10,6 +9,12 @@ import fsDriver from 'unstorage/drivers/fs-lite'
109
1110import type { ModuleOptions } from './module'
1211
12+ declare module '@nuxt/schema' {
13+ interface NuxtHooks {
14+ 'nitro:config' : ( config : NitroConfig ) => void | Promise < void >
15+ }
16+ }
17+
1318const renderedScript = new Map < string , {
1419 content : Buffer
1520 /**
@@ -72,27 +77,25 @@ export function setupPublicAssetStrategy(options: ModuleOptions['assets'] = {})
7277 } )
7378
7479 if ( nuxt . options . dev ) {
75- nuxt . options . routeRules ||= { }
76- nuxt . options . routeRules [ joinURL ( assetsBaseURL , '**' ) ] = {
80+ extendRouteRules ( joinURL ( assetsBaseURL , '**' ) , {
7781 cache : {
7882 maxAge : ONE_YEAR_IN_SECONDS ,
7983 } ,
80- }
84+ } )
8185 }
8286
83- nuxt . options . nitro . publicAssets ||= [ ]
8487 const cacheDir = join ( nuxt . options . buildDir , 'cache' , 'scripts' )
85- nuxt . options . nitro . publicAssets . push ( )
86- nuxt . options . nitro = defu ( nuxt . options . nitro , {
87- publicAssets : [ {
88+ nuxt . hook ( ' nitro:config' , ( nitroConfig ) => {
89+ nitroConfig . publicAssets ||= [ ]
90+ nitroConfig . publicAssets . push ( {
8891 dir : cacheDir ,
8992 maxAge : ONE_YEAR_IN_SECONDS ,
9093 baseURL : assetsBaseURL ,
91- } ] ,
92- prerender : {
93- ignore : [ assetsBaseURL ] ,
94- } ,
95- } satisfies NitroConfig )
94+ } )
95+ nitroConfig . prerender ||= { }
96+ nitroConfig . prerender . ignore ||= [ ]
97+ nitroConfig . prerender . ignore . push ( assetsBaseURL )
98+ } )
9699
97100 return {
98101 renderedScript,
0 commit comments