-
Notifications
You must be signed in to change notification settings - Fork 79
Open
Labels
needs triageIssue needs to be triagedIssue needs to be triaged
Description
What version of @astrojs/compiler
are you using?
2.12.2
What package manager are you using?
npm
What operating system are you using?
mac
Describe the Bug
I'm following the example from understanding astro web book, which uses the parse
and serialize
utilities in a vite plugin loaded first in order to use it on an .astro
page before it is transformed.
however, using <></>
will fail, and <!doctype html>
will return the string html
instead of being ignored.
//vite-plugin.ts
export const vitePlugin = (): Plugin => {
return {
name: 'vite-plugin',
async transform(code, id) {
if (!id.endsWith('.astro')) return;
const { ast } = await parse(code);
// // serialize the AST and return the result
const result = serialize(ast);
console.log(result);
return result;
},
};
};
using empty fragments anywhere:
<!-- index.astro -->
<Layout>
<Welcome />
<></>
</Layout>
results in the following error, which is different from expected behavior based on running astro regularly.
Unable to assign attributes when using <> Fragment shorthand syntax!
How I'm adding the plugin at the front of the array:
export const addPluginAtFrontOfArray = (): Plugin => {
return {
name: 'vite-plugin-inject-at-beginning',
configResolved: (options) => {
(options.plugins as Plugin[]).unshift(vitePlugin());
},
};
};
this might be expected behavior, but I thought it might be worth a mention.
Link to Minimal Reproducible Example
https://stackblitz.com/edit/withastro-astro-ppxdgn2r?file=src%2Fpages%2Findex.astro
Metadata
Metadata
Assignees
Labels
needs triageIssue needs to be triagedIssue needs to be triaged