evanw / esbuild

An extremely fast bundler for the web
https://esbuild.github.io/
MIT License
38.1k stars 1.14k forks source link

code splitting build generates "empty" source map which causes a warning on Firefox #3945

Open hi-ogawa opened 1 week ago

hi-ogawa commented 1 week ago

Reproduction: esbuild try Related issue on Vite: https://github.com/vitejs/vite/issues/17474

As seen in the reproduction, when code splitting build outputs an entry which only re-exports from a common chunk, it generates an "empty" source map.

import {
  entry1
} from "./chunk-PTJ7TEWR.js";
export {
  entry1
};
//# sourceMappingURL=entry1.js.map
{
  "version": 3,
  "sources": [],
  "sourcesContent": [],
  "mappings": "",
  "names": []
}

I thought this behavior seems fine, but it looks like Firefox gives a warning in devtool console https://firefox-source-docs.mozilla.org/devtools-user/debugger/source_map_errors

Source map error: No sources are declared in this source map.
Resource URL: http://localhost:5173/node_modules/.vite/deps/preact.js?v=45e47ff9
Source Map URL: preact.js.map [Learn More]

Maybe this is something Firefox should tolerate, but I tested rolldown with a similar setup and found that it doesn't generate a source map for entry1.js for this specific case https://stackblitz.com/edit/vitejs-vite-npr539?file=dist%2Frolldown%2Fentry1.js, so I thought this could be handled on esbuild similarly.

evanw commented 1 week ago

Huh. That's very silly that a valid source map generates a warning. I suppose I could try to have esbuild work around this warning in Firefox. Thanks for letting me know.