Sourcemaps are not being generated properly from next.js
Sourcemaps don't generate the correct sources path because it truncates dynamic paths (e.g [id])
yarn|npm run dev.next folder, server -> pages -> post -> [id].js/***/ "./pages/post/[id]/index.js":pbpaste | base64 -D on the command line{"version":3,"sources":["webpack:///./pages/post//index.js?a773"]}
notice id has been truncated in the url.
This has broken debugging.
Now, still in the same folder (dynamic routing), change the next.js version in the package.json to 9.3.6
static/development/pages/post/[id].js.map{"version":3,"file":"static/development/pages/post/[id].js","sources":["webpack:///webpack/bootstrap","webpack:///external \"next/dist/next-server/lib/router-context.js\""]}
You can see file is set correctly.
It looks like there was a change between v9.3.6 and v9.4.0 which switches to eval source maps and that doesn't support dynamic routes.
The only change i can see however is an upgrade of the source-maps package.
Sourcemaps should have the proper dynamic routes on them so debugging can work
Related to: https://github.com/vercel/next.js/issues/14906
Regression from?: https://github.com/vercel/next.js/issues/8295
Seems like a bug in the way that webpack handles those source paths (replaces [id] and probably [name] as well) 馃憤
Want to chime in to add breakpoints work correctly on dynamic routes on v9.4.0, and start breaking on v9.4.1 and on. I've tried the latest version, and also Webpack 5 beta. So it does seem to be a regression of https://github.com/vercel/next.js/issues/8295
Seems like a bug in the way that webpack handles those source paths (replaces
[id]and probably[name]as well) 馃憤
@timneutkens Ok interesting.
Is something you've raised upstream?
Is something you've raised upstream?
I haven't it's still something that can be investigated by contributors here.
@timneutkens would it be worth not forcing people to use eval until this is fixed? I understand it鈥檚 a little more optimised in some situations but I think that advantage is overshadowed by it not handling routes.
It essentially blocks anyone from debugging while that鈥檚 in place and will be a forced-downgrade for many.
Warning: Reverting webpack devtool to 'eval-source-map'.
Changing the webpack devtool in development mode will cause severe performance regressions.
Read more: https://err.sh/next.js/improper-devtool
@timneutkens would it be worth not forcing people to use eval until this is fixed? I understand it鈥檚 a little more optimised in some situations but I think that advantage is overshadowed by it not handling routes.
It essentially blocks anyone from debugging while that鈥檚 in place and will be a forced-downgrade for many.
Warning: Reverting webpack devtool to 'eval-source-map'. Changing the webpack devtool in development mode will cause severe performance regressions. Read more: https://err.sh/next.js/improper-devtool
It would take the equivalent amount of work to investigate this issue or make the change you're suggesting so I'd suggest investigating and fixing it.
I may be a bit of a drag but being able to debug is critical to our process, so I can't upgrade to 9.5 until this is fixed or has a workaround, yet the docs don't support old versions and I'm starting to run into signs in them saying to upgrade, which is getting frustrating. Has this been raised upstream? I want to try my hand at it.
@Javi i raised it here https://github.com/webpack/webpack/issues/11456 feel free to chase it up
Hey @timneutkens
I've attempted to reproduce this issue using just webpack and taking next out of the equation. It doesn't happen with webpack directly so I'm not sure if this is an upstream issue.
See here: https://github.com/webpack/webpack/issues/11456#issuecomment-698911033
Given that Next.js configures webpack to create the sourcemaps and we don't have any custom plugins that change sourcemaps it's unlikely that it's an issue directly related to Next.js. Either way this still has to be looked into.
Most helpful comment
I may be a bit of a drag but being able to debug is critical to our process, so I can't upgrade to 9.5 until this is fixed or has a workaround, yet the docs don't support old versions and I'm starting to run into signs in them saying to upgrade, which is getting frustrating. Has this been raised upstream? I want to try my hand at it.