VS Code sourceMapPathOverrides

时间:2016-08-09 09:01:24

标签: visual-studio-code source-maps

我有一个Aurelia TypeScript项目,我编译的JavaScript文件进入.../wwwroot子文件夹,原始的打字稿文件位于.../src。我正在尝试在VS代码中使用Chrome调试程序扩展程序但是没有点击断点,当我在diagnosticLogging中打开launch.json时,映射的源代码不正确:它会查看.../wwwroot/src/file.ts而不是.../src/file.ts

我试图用sourceMapPathOverrides解决这个问题,但没有成功。看来我无法匹配我的sourceRoot。

我试过了:

"webRoot": "${workspaceRoot}/wwwroot",
"sourceMapPathOverrides": {
    "/src/*": "${workspaceRoot}/src/*"     
},

这是用于查找login.js来源的调试控制台输出:

›SourceMaps.loadSourceMapContents: Reading local sourcemap file from ...\wwwroot\dist\login.js.map
›SourceMap: creating for ...\wwwroot\dist\login.js
›SourceMap: sourceRoot: /src
›SourceMap: sources: ["login.ts"]
›SourceMap: webRoot: .../wwwroot
›SourceMap: resolved sourceRoot /src -> ...\wwwroot\src
›SourceMaps.scriptParsed: ...\wwwroot\dist\login.js was just loaded and has mapped sources: ["...\\wwwroot\\src\\login.ts"]

注意:三个点...代表我在磁盘上删除的项目根路径。

如何使用sourceMapPathOverrideslogin.ts中查找.../src/

由于建议,我尝试将webRoot设置为workspaceRoot,如下所示:

"webRoot": "${workspaceRoot}"

这样映射的源文件是正确的,断点也可以工作。但日志也说:

  

Paths.scriptParsed:无法将http://localhost:9000/dist/login.js解析为webRoot下的文件:c:\ Users \ username \ Source \ Repos \ myproject。它可以是外部的,也可以直接从服务器的内存中提供(没关系)。

网络服务器提供的文件夹是我项目中的wwwroot子文件夹,因此从说明设置webRootworkspaceRoot是错误的。可能会出现哪些其他问题或者@Steffen的建议是否有效?

要确保这是文件夹结构

/                    (project/source/git root)
/src                 (contains typescript, html files, is sourceRoot in source mapping)
/src/login.ts
/wwwroot             (root folder served by dev web server, should be webRoot shouldn't it?)
/wwwroot/index.html  (file opened by http://localhost:9000/ which starts Aurelia bootstrapper)
/wwwroot/config.js   (SystemJS config, maps * to dist/* )
/wwwroot/dist        (folder containing compiled application files)
/wwwroot/dist/login.js

0 个答案:

没有答案