Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

import.meta.glob not transformed when options are passed #42

Open
ppkn opened this issue Jul 11, 2023 · 4 comments
Open

import.meta.glob not transformed when options are passed #42

ppkn opened this issue Jul 11, 2023 · 4 comments

Comments

@ppkn
Copy link

ppkn commented Jul 11, 2023

  • babel-preset-vite version: 1.0.4
  • babel-plugin-transform-vite-meta-env version: 1.0.3
  • babel-plugin-transform-vite-meta-glob version: 1.0.3
  • @babel/core version: 7.11.1
  • node version: 16.17.1
  • npm (or yarn) version: yarn 1.22.19

Relevant code or config:

// working 👍 
Object.values(import.meta.glob("src/images/*.jpg"))

// not working 👎 
Object.values(import.meta.glob("src/images/*.jpg", { eager: true, as: "url" }) // or any options parameter value

What you did:

  • running jest tests

What happened:

This error occurs when attempting to run tests

SyntaxError: Cannot use 'import.meta' outside a module

Reproduction:

TBD (I've got a big application and I'm not in a place to strip it down to the essentials right now)

Problem description:

It looks like import.meta.glob doesn't get transformed when a second argument it passed.

Suggested solution:

I'm not familiar enough with babel plugins, but if we can specify optional arguments when doing the transformation I'm guessing that will solve it. Not sure how involved we want to make the transformation though. It might be a lot to replicate what Vite does with import.meta.glob with options.

@jazlalli
Copy link
Contributor

jazlalli commented Nov 3, 2023

Running into this same issue myself, when supplying the 2nd argument.

Seems like that usage isn't supported by this plugin (only 1 string arg in the patterns 👇🏽), so it would need to be implemented in order to support this usage.

glob: (path: string) =>
t.arrowFunctionExpression(
[],
t.callExpression(t.identifier('import'), [t.stringLiteral(path)])
),

I can attempt a PR that does this, but no guarantees that a) i'll get it working and b) on when I'll find the time.

@vctqs1
Copy link
Contributor

vctqs1 commented Dec 12, 2023

I also got same issue

@krybinski
Copy link

I encountered the same problem

@vctqs1
Copy link
Contributor

vctqs1 commented Dec 28, 2023

@krybinski hi, the new version already publish #51 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants