Skip to content

Commit

Permalink
fix(nuxt): handle empty plugin files
Browse files Browse the repository at this point in the history
  • Loading branch information
danielroe committed Nov 18, 2024
1 parent da7370d commit d44408e
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions packages/nuxt/src/core/plugins/plugin-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,18 +125,26 @@ export const RemovePluginMetadataPlugin = (nuxt: Nuxt) => createUnplugin(() => {
const plugin = nuxt.apps.default?.plugins.find(p => p.src === id)
if (!plugin) { return }

const s = new MagicString(code)
if (!code.trim()) {
logger.warn(`Plugin \`${plugin.src}\` has no content.`)

return {
code: 'export default () => {}',
map: { mappings: '' },
}
}

const exports = findExports(code)
const defaultExport = exports.find(e => e.type === 'default' || e.name === 'default')
if (!defaultExport) {
logger.warn(`Plugin \`${plugin.src}\` has no default export and will be ignored at build time. Add \`export default defineNuxtPlugin(() => {})\` to your plugin.`)
s.overwrite(0, code.length, 'export default () => {}')
return {
code: s.toString(),
map: nuxt.options.sourcemap.client || nuxt.options.sourcemap.server ? s.generateMap({ hires: true }) : null,
code: 'export default () => {}',
map: { mappings: '' },
}
}

const s = new MagicString(code)
let wrapped = false
const wrapperNames = new Set(['defineNuxtPlugin', 'definePayloadPlugin'])

Expand Down

0 comments on commit d44408e

Please sign in to comment.