get-source
get-source copied to clipboard
Cannot resolve HTTP sourcemaps in Node
Hi, I noticed that I seem to be unable to resolve sourcemaps in Node. Here is a full repro with repro steps.
Notice that, in my repro web app, Chrome is able to parse the stacktrace for script.min.js
(source: script.js
), so the sourcemap seems to be configured correctly:
Yet, in Node.js, when I run:
const stacktrace = "Error\n at http://localhost:3000/script.min.js:1:29"
console.log(new Stacktracey(stacktrace).withSources().asTable())
The output is:
at script.min.js:1
Note that it says script.min.js
, not script.js
.
I believe I've tracked it down to these lines of code:
https://github.com/xpl/get-source/blob/02d7eecfef4b3a3efa0621d93f6e5a2e8d2321a0/get-source.js#L146
https://github.com/xpl/get-source/blob/02d7eecfef4b3a3efa0621d93f6e5a2e8d2321a0/get-source.js#L169
Note that, in the browser version of the code, it does an XHR to fetch the path
– i.e. it assumes it's a URL, not a filepath. But in Node, it assumes it's a filepath. So we get a "no such file or directory" error:
It seems to me that the Node code should be making an HTTP request rather than doing fs.readFile
/ fs.readFileSync
, similar to what it does in the browser.