[READ-ONLY] Mirror of https://github.com/danielroe/cross-origin-storage. Load shared dependencies from Cross-Origin Storage (COS).
cross-origin-storage experimental nuxt vite vite-plugin
0

Configure Feed

Select the types of activity you want to include in your feed.

1import { defineNuxtModule, addServerPlugin, addVitePlugin, createResolver } from '@nuxt/kit' 2import { cosPlugin } from 'vite-plugin-cross-origin-storage' 3 4export interface ModuleOptions { 5 /** 6 * Packages to extract into standalone Cross-Origin Storage chunks. 7 * Each entry is matched against the imported module specifier; a plain 8 * string is treated as an exact match. 9 */ 10 packages: Array<string | RegExp> 11} 12 13export default defineNuxtModule<ModuleOptions>({ 14 meta: { 15 name: 'nuxt-cos', 16 configKey: 'cos', 17 }, 18 defaults: { 19 packages: [/^(?:vue$|@vue\/)/], 20 }, 21 setup(options, nuxt) { 22 if (nuxt.options.dev) { 23 return 24 } 25 26 const resolver = createResolver(import.meta.url) 27 28 let scriptContent = '' 29 30 nuxt.options.nitro.virtual ||= {} 31 nuxt.options.nitro.virtual['virtual:cos-loader'] = () => `export default ${JSON.stringify(scriptContent)}` 32 33 addServerPlugin(resolver.resolve('./runtime/server/plugins/inject')) 34 35 addVitePlugin(() => cosPlugin({ 36 packages: options.packages, 37 base: '/_nuxt/', 38 onGenerated: (content) => { 39 scriptContent = content 40 }, 41 }), { client: true, server: false }) 42 }, 43})