refactor(nuxt): add cache, treeshaking and sourcemap capabilities to nuxt config
This commit is contained in:
		
							parent
							
								
									b1c94ab0ae
								
							
						
					
					
						commit
						1b75c199a4
					
				| @ -4,6 +4,17 @@ import { defineNuxtModule } from "@nuxt/kit"; | |||||||
| // import speedkitHydrate from "nuxt-speedkit/dist/runtime/hydrate.mjs";
 | // import speedkitHydrate from "nuxt-speedkit/dist/runtime/hydrate.mjs";
 | ||||||
| 
 | 
 | ||||||
| export type SessionData = IUser; | export type SessionData = IUser; | ||||||
|  | const cac = { | ||||||
|  | 	isr: true, | ||||||
|  | 	headersOnly: true, | ||||||
|  | 	cache: { | ||||||
|  | 		headersOnly: true, | ||||||
|  | 		// integrity: "",
 | ||||||
|  | 		// varies: ["Content-Length"],
 | ||||||
|  | 		maxAge: 60, | ||||||
|  | 	}, | ||||||
|  | 	swr: false, | ||||||
|  | }; | ||||||
| const ct = | const ct = | ||||||
| 	<T>() => | 	<T>() => | ||||||
| 	<U extends T>(u: U) => | 	<U extends T>(u: U) => | ||||||
| @ -12,7 +23,7 @@ export default defineNuxtConfig({ | |||||||
| 	experimental: { | 	experimental: { | ||||||
| 		watcher: "chokidar-granular", | 		watcher: "chokidar-granular", | ||||||
| 		// noScripts: true,
 | 		// noScripts: true,
 | ||||||
| 		treeshakeClientOnly: false, | 		treeshakeClientOnly: true, | ||||||
| 	}, | 	}, | ||||||
| 	devtools: { enabled: false }, | 	devtools: { enabled: false }, | ||||||
| 	modules: [ | 	modules: [ | ||||||
| @ -21,23 +32,18 @@ export default defineNuxtConfig({ | |||||||
| 		"@sidebase/nuxt-auth", | 		"@sidebase/nuxt-auth", | ||||||
| 		"@pinia/nuxt", | 		"@pinia/nuxt", | ||||||
| 		"@vueuse/nuxt", | 		"@vueuse/nuxt", | ||||||
| 		// defineNuxtModule({
 | 		"nuxt-speedkit", | ||||||
| 		// 	async setup(options, nuxt) {
 |  | ||||||
| 		// 		nuxt.hook("components:extend", (components) => {
 |  | ||||||
| 		// 			// console.log(components);
 |  | ||||||
| 		// 			// components = components.map((a) => {
 |  | ||||||
| 		// 			// 	return speedkitHydrate(() => import(a.filePath));
 |  | ||||||
| 		// 			// });
 |  | ||||||
| 		// 		});
 |  | ||||||
| 		// 	},
 |  | ||||||
| 		// }),
 |  | ||||||
| 		// "nuxt-speedkit",
 |  | ||||||
| 	], | 	], | ||||||
| 	// speedkit: {
 | 	speedkit: { | ||||||
| 	// 	disableNuxtFontaine: true,
 | 		disableNuxtFontaine: true, | ||||||
| 	// },
 | 		lazyOffset: { | ||||||
|  | 			component: "0%", | ||||||
|  | 			asset: "0%", | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| 	css: ["~/public/fonts.css", "~/public/css/all.css"], | 	css: ["~/public/fonts.css", "~/public/css/all.css"], | ||||||
| 	auth: { | 	auth: { | ||||||
|  | 		baseURL: "/api/auth", | ||||||
| 		provider: { | 		provider: { | ||||||
| 			type: "local", | 			type: "local", | ||||||
| 			pages: { | 			pages: { | ||||||
| @ -47,27 +53,51 @@ export default defineNuxtConfig({ | |||||||
| 				signInResponseTokenPointer: "/token", | 				signInResponseTokenPointer: "/token", | ||||||
| 				type: "Bearer", | 				type: "Bearer", | ||||||
| 				headerName: "Authorization", | 				headerName: "Authorization", | ||||||
| 				maxAgeInSeconds: 168 * 24 * 60 * 60, | 				maxAgeInSeconds: 14 * 24 * 60 * 60, | ||||||
| 				sameSiteAttribute: "lax", | 				// sameSiteAttribute: ,
 | ||||||
| 			}, | 			}, | ||||||
| 			sessionDataType: {} as { [Property in keyof IUser]: string }, | 			sessionDataType: {} as { [Property in keyof IUser]: string }, | ||||||
| 			endpoints: { | 			endpoints: { | ||||||
| 				signUp: { path: "/register", method: "post" }, | 				signUp: { path: "/register", method: "post" }, | ||||||
|  | 				signOut: { path: "/logout", method: "post" }, | ||||||
|  | 				getSession: { | ||||||
|  | 					path: "/session", | ||||||
|  | 					method: "get", | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 		globalAppMiddleware: { | 		}, | ||||||
| 			isEnabled: false, | 		globalAppMiddleware: false, | ||||||
|  | 
 | ||||||
|  | 		//@ts-ignore
 | ||||||
|  | 		session: { | ||||||
|  | 			enableRefreshPeriodically: 60 * 60 * 2 * 1000, | ||||||
|  | 			enableRefreshOnWindowFocus: false, | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	nitro: { | 	nitro: { | ||||||
| 		esbuild: { | 		esbuild: { | ||||||
| 			options: { | 			options: { | ||||||
| 				minify: true, | 				minify: true, | ||||||
| 				// sourceMap: false,
 | 				sourceMap: "inline", | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | 		preset: "node", | ||||||
|  | 	}, | ||||||
|  | 	routeRules: { | ||||||
|  | 		"/": cac, | ||||||
|  | 		"/api/**": { cors: true }, | ||||||
|  | 		"/bands/**": cac, | ||||||
|  | 		"/authors": cac, | ||||||
|  | 		"/story/**": { | ||||||
|  | 			swr: true, | ||||||
|  | 			isr: true, | ||||||
|  | 			cache: { | ||||||
|  | 				maxAge: 1800, | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		// "/authors": { swr: 0 },
 | ||||||
|  | 		// "/bands": { swr: 0 },
 | ||||||
| 	}, | 	}, | ||||||
| 
 |  | ||||||
| 	// routeRules: {
 | 	// routeRules: {
 | ||||||
| 	// "/**": {
 | 	// "/**": {
 | ||||||
| 	// 	cache: {
 | 	// 	cache: {
 | ||||||
| @ -78,6 +108,10 @@ export default defineNuxtConfig({ | |||||||
| 	// },
 | 	// },
 | ||||||
| 	// },
 | 	// },
 | ||||||
| 	// ssr: false,
 | 	// ssr: false,
 | ||||||
|  | 	sourcemap: { | ||||||
|  | 		server: true, | ||||||
|  | 		client: true, | ||||||
|  | 	}, | ||||||
| 	runtimeConfig: { | 	runtimeConfig: { | ||||||
| 		captcha: { | 		captcha: { | ||||||
| 			secret: process.env.CAPTCHASECRET, | 			secret: process.env.CAPTCHASECRET, | ||||||
| @ -93,6 +127,11 @@ export default defineNuxtConfig({ | |||||||
| 			recaptcha: { | 			recaptcha: { | ||||||
| 				v2SiteKey: process.env.CAPTCHAKEY, | 				v2SiteKey: process.env.CAPTCHAKEY, | ||||||
| 			}, | 			}, | ||||||
|  | 			auth: { | ||||||
|  | 				computed: { | ||||||
|  | 					origin: "127.0.0.1", | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			// apiBase: "/api"
 | 			// apiBase: "/api"
 | ||||||
| 		}, | 		}, | ||||||
| 		nodebb: { | 		nodebb: { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user