elk/modules/purge-comments.ts
Daniel Roe 45b6e39b6e
fix: do not emit runtime comments
resolves 'Extraneous non-props attributes (class) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.'
2022-11-25 14:42:26 +00:00

28 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 }),
}
}
},
})
},
})