diff --git a/modules/purge-comments.ts b/modules/purge-comments.ts new file mode 100644 index 000000000..ead587d7a --- /dev/null +++ b/modules/purge-comments.ts @@ -0,0 +1,28 @@ +import { addVitePlugin, defineNuxtModule } from '@nuxt/kit' +import MagicString from 'magic-string' + +export default defineNuxtModule({ + meta: { + name: 'purge-comments', + }, + setup() { + addVitePlugin({ + name: 'purge-comments', + enforce: 'pre', + transform: (code, id) => { + if (!id.endsWith('.vue') || !code.includes('/sg, '') + + if (s.hasChanged()) { + return { + code: s.toString(), + map: s.generateMap({ source: id, includeContent: true }), + } + } + }, + }) + }, +}) diff --git a/nuxt.config.ts b/nuxt.config.ts index 84832a358..f376d9e8b 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -5,6 +5,7 @@ export default defineNuxtConfig({ '@unocss/nuxt', '@pinia/nuxt', '@vue-macros/nuxt', + '~/modules/purge-comments', ], experimental: { reactivityTransform: true,