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

Critical dependency: require function is used in a way in which dependencies cannot be statically extracted #187

Closed
rishu605 opened this issue Dec 10, 2022 · 10 comments

Comments

@rishu605
Copy link

rishu605 commented Dec 10, 2022

I have been setting up swc with webpack. There is a package I use for linting -- eslint-config-react-app. This has a dependency on babel-plugin-macros. I get the following warning on starting the dev server.

Webpack version is 5.75
WARNING in ./node_modules/babel-plugin-macros/dist/index.js 75:22-29 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
Looks like it is caused due to the way require is being used in this plugin. Not sure how to get rid of this warning.

  • babel-plugin-macros version: 3.1.0
  • node version: 18.12.1
  • npm version: 8.19.2

I removed all dependencies of babel and it's related packages to avoid any potential conflicts between swc and babel but the warning is still present.

@conartist6
Copy link
Collaborator

It's most likely the way babel-plugin-macros loads cosmiconfig...

@conartist6
Copy link
Collaborator

// Lazy load cosmiconfig since it is a relatively large bundle
require('cosmiconfig').cosmiconfigSync('babel-plugin-macros', {

@rishu605
Copy link
Author

The error message leads to this line in the code:
Screenshot from 2022-12-11 22-15-21

@conartist6
Copy link
Collaborator

Ah ok. So the warning is probably safe to ignore then right? Nothing is actually being required by this code, and the places that do call into this code probably all look like perfectly normal global.require('module-name') calls.

@rishu605
Copy link
Author

Looks like ignoring this warning won't cause any issues for now. Not sure though.

@conartist6
Copy link
Collaborator

I'm pretty sure that ignoring it won't cause issues. The warning clearly seems to be about the ability to extract the dependency graph, which is not affected.

It does seem suspicious to me though that webpack would be parsing eslint-config-react-app. Why is a linter in the bundle?

@rishu605
Copy link
Author

Is there a way to prevent linting packages from being parsed while bundling through webpack!!

@conartist6
Copy link
Collaborator

I don't know, because I don't know why it is parsing them.

@conartist6 conartist6 closed this as not planned Won't fix, can't repro, duplicate, stale Jan 23, 2023
@GuYounes
Copy link

Any news ?

@conartist6
Copy link
Collaborator

conartist6 commented Feb 16, 2023

No news, unless webpack offers some kind of special comment that silences that warning?

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

3 participants