Subscribe on changes!

All Typescript sourcemaps resolve to `input.ts` when running live

avatar
May 14th 2020

Describe the bug

When including Typescript, the generated source map for each file maps it the file to input.ts. This causes problems with breakpoints, as well as logging locations. Additionally, during loading in the Chrome debugger, you can sometimes see all Typescript files flash as input.ts.

Reproduction

$ npx create-vite-app
$ npm i
$ echo "console.log('test')" > test.ts
$ echo "import './test'" >> main.js
$ npm run dev
$ curl 'http://localhost:3000/test.ts'
> console.log("test");
> 
> 
> //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL2lucHV0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zb2xlLmxvZygndGVzdCcpXG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxRQUFRLElBQUk7IiwKICAibmFtZXMiOiBbXQp9Cg==

The sourcemap decodes to:

{
  "version": 3,
  "sources": ["/input.ts"],
  "sourcesContent": ["console.log('test')\n"],
  "mappings": "AAAA,QAAQ,IAAI;",
  "names": []
}

System Info

  • required vite version: 0.14.4, 0.10.x
  • required Operating System: Ubuntu, Windows, WSL
  • required Node version: 12.11.1, 12.13.1
  • Optional:
    • npm/yarn version: 6.11.3, 6.14.5
    • Installed vue version: 3.0.0-beta.10
    • Installed @vue/compiler-sfc version: 3.0.0-beta.10
avatar
May 14th 2020

This is an issue with esbuild’s transform API. It currently doesn’t accept option to specify the file name for the source map.

avatar
May 14th 2020

I suspected that, seeing input.ts come back in a different issue, but I couldn't definitely relate it to this. Might be good to document that this is defunct for the time being.

avatar
May 14th 2020

The newest release of esbuild has an option for this called sourcefile. Please let me know if you have any trouble using it.

avatar
May 14th 2020

@evanw working nicely now! @Dykam thanks for the PR.