29 lines
652 B
TypeScript
29 lines
652 B
TypeScript
|
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('<!--'))
|
||
|
return
|
||
|
|
||
|
const s = new MagicString(code)
|
||
|
s.replace(/<!--(?:.*?)-->/sg, '')
|
||
|
|
||
|
if (s.hasChanged()) {
|
||
|
return {
|
||
|
code: s.toString(),
|
||
|
map: s.generateMap({ source: id, includeContent: true }),
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
})
|
||
|
},
|
||
|
})
|