Skip to content

Position of import.meta.glob causes error #944

@steveoh

Description

@steveoh

Astro Info

Astro                    v4.2.1
Node                     v20.9.0
System                   macOS (x64)
Package Manager          npm
Output                   static
Adapter                  none
Integrations             @astrojs/mdx
                         @astrojs/sitemap
                         @astrojs/tailwind
                         @astrojs/react

If this issue only occurs in one browser, which browser is a problem?

No response

Describe the Bug

with the following frontmatter astro throws an error that i is not defined.

---
import type { ImageMetadata } from 'astro';

import Layout from '../layouts/FullWidth.astro';
import Section from '../components/page/Section.astro';
import StaffMember from '../components/page/StaffMember.astro';

import { Image } from 'astro:assets';

const images = import.meta.glob<{ default: ImageMetadata }>('/src/images/pillar-contact/*.svg');

import { staff } from '../data/staff';
---

astro compiles to

import {
  Fragment,
  render as $$render,
  createAstro as $$createAstro,
  createComponent as $$createComponent,
  renderComponent as $$renderComponent,
  renderHead as $$renderHead,
  maybeRenderHead as $$maybeRenderHead,
  unescapeHTML as $$unescapeHTML,
  renderSlot as $$renderSlot,
  mergeSlots as $$mergeSlots,
  addAttribute as $$addAttribute,
  spreadAttributes as $$spreadAttributes,
  defineStyleVars as $$defineStyleVars,
  defineScriptVars as $$defineScriptVars,
  createMetadata as $$createMetadata
} from "astro/runtime/server/index.js";
import type { ImageMetadata } from 'astro';
import Layout from '../layouts/FullWidth.astro';
import Section from '../components/page/Section.astro';
import StaffMember from '../components/page/StaffMember.astro';
import { Image } from 'astro:assets';
import { staff } from '../data/staff';


import * as $$module1 from '../layouts/FullWidth.astro';
import * as $$module2 from '../components/page/Section.astro';
import * as $$module3 from '../components/page/StaffMember.astro';
import * as $$module4 from 'astro:assets';
import * as $$module5 from '../data/staff';

export const $$metadata = $$createMetadata("Card.astro", { modules: [{ module: $$module1, specifier: '../layouts/FullWidth.astro', assert: {} }, { module: $$module2, specifier: '../components/page/Section.astro', assert: {} }, { module: $$module3, specifier: '../components/page/StaffMember.astro', assert: {} }, { module: $$module4, specifier: 'astro:assets', assert: {} }, { module: $$module5, specifier: '../data/staff', assert: {} }], hydratedComponents: [], clientOnlyComponents: [], hydrationDirectives: new Set([]), hoisted: [] });

const $$Astro = $$createAstro();
const Astro = $$Astro;
const $$Card = $$createComponent(async ($$result, $$props, $$slots) => {
const Astro = $$result.createAstro($$Astro, $$props, $$slots);
Astro.self = $$Card;


const images = import.meta.glob<{ default: ImageMetadata }>('/src/images/pillar-contact/*.svg');

i

return $$render`wediowqed`;
}, 'Card.astro');
export default $$Card;

If i move the import above, the error goes away.

What's the expected result?

it should work no matter the order

Link to Minimal Reproducible Example

https://live-astro-compiler.vercel.app/?editor-state=WzMxLDEzOSw4LDAsMTA1LDE4OCwxNjksMTAxLDIsMywxMjUsODIsNzcsNzksMjIwLDQ4LDE2LDI1Myw0Myw4Niw0NiwyMTksODYsMTA4LDIyMCwxNzAsMTgzLDI0NCw2Nyw2Niw4NCw4NCw3MiwzMiw4NSwxMzIsMTUwLDMwLDE4NCwyMDQsMjE4LDE0NywxNzMsMzcsMTI3LDE2NCw1MSwxNCw0Myw4OCwyNDEsMjIzLDI1LDExMSwxNTAsNCw4OCw5LDIyOSwxOCwxNDMsMjIzLDEyMywxMjYsMjQzLDEwMiwxODIsMTQ5LDI1LDEzNiw0OCwyMzAsMTQ3LDIwLDEyMiwyMzEsMTQ1LDI1NCwzMiwxNzcsNzUsMTc3LDEwNiwxNzAsNzksMjQ1LDIzMSwyNTAsOTksMTE3LDg0LDE1MywxMDAsODEsMTQyLDIwMywyMjksMjQyLDM4LDE4NiwyMDgsMzksMjAyLDQyLDIyMywyNDUsMTY4LDE4MiwyMzQsNDQsMTkyLDI2LDQ3LDQ4LDEzMSwxMzMsMTIsMjM0LDY1LDExNywxNDgsMTMwLDkwLDAsMTAzLDc0LDEzOSw0Nyw1NSwxMTMsMTMwLDE1OSwxOTUsOTMsMjYsMjQyLDI1NCwxODYsMTc0LDE4MSwyMjMsMTU3LDg5LDE1OSwxNCwyMjIsOTUsNTksMTU1LDI1NSwyMTMsMTksMTAzLDIwNywxMDQsMjA5LDEwMCwxMTMsNDksODMsMTQwLDIxNiw3NSw4MSwxMjQsMTc4LDIzOCwyMjksODEsMTg5LDcsMjgsMTgsNTEsMTE2LDIyMSw1LDEzNCwyMSwyMTAsMjcsMjI4LDI1LDUyLDExLDc2LDE4LDI1MSwxOTAsOTQsMjQ2LDIxMSwwLDUxLDEwMiwzMCwxMjksMzgsNjksMjA2LDIwMiwyMSwyMCwxNzEsMTExLDI0Miw4MywxMjAsMTE3LDE0NCwzMiwyMzQsMTgxLDc5LDE3MSwxNzUsOTEsMTAxLDE3NywxMzEsMTkzLDIzMSwyMzAsMTE3LDY4LDIyMywyMjMsNDUsNTIsMTQ3LDIwOSwzNSw4Nyw3NSwyMjYsMzAsMTA0LDQxLDEyMiwyNSw3NiwyMTQsMzEsMTA2LDE5MCw5Myw0NywyMjIsMjA3LDIyMSwxMDgsMjEsMjMsMTcxLDE0NywyMSwyMzMsMTY1LDIzMiwyMzIsOTMsMTE3LDI0NCwxNzgsMjcsNzUsMjQ5LDU0LDEwNCw5MywyMTgsMjUyLDcxLDQzLDM1LDIxOSwzNiwxNzgsMjE1LDQsMTI1LDQ3LDE2NywzOCwyMTEsMTI4LDcxLDg1LDI0LDE2NywxNTIsOSwzNCwxMTksMTM3LDEzMCwxNjAsMTIyLDMyLDE5OCw5NSwxMzcsOTMsNzMsMTc4LDEwNiw1OCwyNDAsNDQsMTkyLDksMTEzLDIyLDUxLDgyLDQsMjU1LDI1MSwyNDIsOTIsMTM2LDEzMCwyMzksMTAwLDYzLDM0LDEzMiwzNCwxMTUsMiwxMDAsMTk5LDIzMiwxNjQsMzAsNSwxMiwyMjIsMjIxLDE2Myw2MSwxNTcsMTcsODIsMTU5LDE0OCwyMTgsNTIsMTQ0LDE5MywwLDI1MywyMjUsMzUsMTk5LDY5LDIyNywxNjcsMTMyLDYsMjU0LDE1MiwyMTQsMjUyLDEzOCw4OCwxNTAsODIsMTMwLDU3LDE2NCw5MywzNCw3NSwxODgsMTczLDczLDIxMCw5NywyMzUsMjExLDE0MCwxODQsMTE3LDE4NCwyNDksMzMsMTEzLDEzOSwxNyw1OSwxMzAsNjgsMTE1LDc2LDEyOCwyMDksMjAzLDIxMCwxNjAsMTg5LDEyMiwxOCwxODUsMTMwLDE0OSwxODgsMTgzLDkxLDIzOSwxMDMsMTgzLDIzNywyMjMsMTAzLDI0NSwxMzUsNzEsMjksMjE4LDExNiwxOTksMzIsMywwLDBd

Participation

  • I am willing to submit a pull request for this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions