Skip to content

Cannot resolve HTTP sourcemaps in Node #8

@nolanlawson

Description

@nolanlawson

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:

Screenshot from 2021-12-26 20-59-24

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:

resolve (nodeRequire ('fs').readFileSync (path, { encoding: 'utf8' }))

nodeRequire ('fs').readFile (path, { encoding: 'utf8' }, (e, x) => {

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:

Screenshot from 2021-12-26 21-03-01

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions