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

Remove import meta in ReactRefreshModule.runtime.ts #60515

Open
wants to merge 3 commits into
base: canary
Choose a base branch
from

Conversation

vincent-lecrubier-skydio
Copy link

@vincent-lecrubier-skydio vincent-lecrubier-skydio commented Jan 11, 2024

Fix #56487 #35110

Locally, the issue I had was this:

 ⨯ ../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js
Module parse failed: Cannot use 'import.meta' outside a module (41:16)
|                 // still a Refresh Boundary later.
|                 // @ts-ignore importMeta is replaced in the loader
>                 import.meta.webpackHot.accept();
|                 // This field is set when the previous version of this module was a
|                 // Refresh Boundary, letting us know we need to check for invalidation or

Import trace for requested module:
../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js
../../../node_modules/react-relay/lib/ReactRelayFragmentContainer.js
../../../node_modules/react-relay/lib/index.js
../../../node_modules/react-relay/index.js

Replacing global.importMeta.webpackHot with __webpack_module__.hot fixed it for me locally, and seem to maybe make sense given that __webpack_module__.hot is used across the file without issues?

That said, I have no idea about the conceptual difference between __webpack_module__.hot and global.importMeta.webpackHot, maybe there is a reason someone used global.importMeta.webpackHot instead of __webpack_module__.hot.

Prevents this error:

Module parse failed: Cannot use 'import.meta' outside a module (41:16)
@jakubriedl
Copy link

Great work, I've tried the patch locally and it fixes the issue for us as well.

@ijjk
Copy link
Member

ijjk commented Feb 7, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
buildDuration 14.1s 13.9s N/A
buildDurationCached 7.6s 6.3s N/A
nodeModulesSize 199 MB 199 MB N/A
nextStartRea..uration (ms) 377ms 379ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
2453-HASH.js gzip 31.5 kB 31.5 kB N/A
3304.HASH.js gzip 181 B 181 B
3f784ff6-HASH.js gzip 53.7 kB 53.7 kB
8299-HASH.js gzip 5.1 kB 5.1 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 242 B 240 B N/A
main-HASH.js gzip 29.6 kB 29.7 kB N/A
webpack-HASH.js gzip 1.68 kB 1.68 kB N/A
Overall change 99 kB 99 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
_app-HASH.js gzip 196 B 197 B N/A
_error-HASH.js gzip 184 B 184 B
amp-HASH.js gzip 505 B 505 B
css-HASH.js gzip 324 B 325 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 258 B 258 B
head-HASH.js gzip 352 B 352 B
hooks-HASH.js gzip 370 B 371 B N/A
image-HASH.js gzip 4.27 kB 4.27 kB
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.67 kB 2.67 kB N/A
routerDirect..HASH.js gzip 314 B 312 B N/A
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 309 B 309 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 6.63 kB 6.63 kB
Client Build Manifests
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
_buildManifest.js gzip 483 B 485 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
index.html gzip 528 B 527 B N/A
link.html gzip 541 B 540 B N/A
withRouter.html gzip 524 B 522 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
edge-ssr.js gzip 94.4 kB 94.4 kB N/A
page.js gzip 3.05 kB 3.05 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
middleware-b..fest.js gzip 624 B 626 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 25.5 kB 25.5 kB N/A
edge-runtime..pack.js gzip 839 B 839 B
Overall change 839 B 839 B
Next Runtimes
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
app-page-exp...dev.js gzip 171 kB 171 kB
app-page-exp..prod.js gzip 97.5 kB 97.5 kB
app-page-tur..prod.js gzip 99.2 kB 99.2 kB
app-page-tur..prod.js gzip 93.5 kB 93.5 kB
app-page.run...dev.js gzip 145 kB 145 kB
app-page.run..prod.js gzip 92 kB 92 kB
app-route-ex...dev.js gzip 21.5 kB 21.5 kB
app-route-ex..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 14.9 kB 14.9 kB
app-route.ru...dev.js gzip 21.1 kB 21.1 kB
app-route.ru..prod.js gzip 14.9 kB 14.9 kB
pages-api-tu..prod.js gzip 9.55 kB 9.55 kB
pages-api.ru...dev.js gzip 9.82 kB 9.82 kB
pages-api.ru..prod.js gzip 9.55 kB 9.55 kB
pages-turbo...prod.js gzip 21.4 kB 21.4 kB
pages.runtim...dev.js gzip 22.1 kB 22.1 kB
pages.runtim..prod.js gzip 21.4 kB 21.4 kB
server.runti..prod.js gzip 51.5 kB 51.5 kB
Overall change 945 kB 945 kB
build cache Overall increase ⚠️
vercel/next.js canary vincent-lecrubier-skydio/next.js canary Change
0.pack gzip 1.59 MB 1.59 MB ⚠️ +565 B
index.pack gzip 107 kB 107 kB ⚠️ +128 B
Overall change 1.7 MB 1.7 MB ⚠️ +693 B
Diff details
Diff for middleware.js

Diff too large to display

Commit: 22c2b15

@vincent-lecrubier-skydio
Copy link
Author

The CI tests failed for unrelated reasons, can someone have a look ? @timneutkens maybe

@gnoyixiang
Copy link

@vincent-lecrubier-skydio hey thanks for the fix. It seems like this PR is taking some time to be approved. In the meantime, is there any workaround for this error? Really appreciate your help here.

@dalmasonto
Copy link

In next.config.mjs I had this transpiled section, commenting out the package there, yarn dev started working well. I had added it there for build purposes, but for dev its not required, it will cause chaos

export default withBundleAnalyzer({
  reactStrictMode: false,
  eslint: {
    ignoreDuringBuilds: true,
  },
  // transpilePackages: ['highlight.js']
});

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

Successfully merging this pull request may close these issues.

transpilePackages causes use of 'import.meta' outside a module, breaking dev mode
6 participants