使用IntelliJ和源映射启用JavaScript调试

Raf*_*ter 9 javascript intellij-idea browserify source-maps

我使用IntelliJ 14.1.4创建JavaScript应用程序.为了调试,我使用Gulp启动了一个Web服务器.然后我启动JavaScript调试并与Chrome连接(通过插件).我可以通过这种方式调试"普通"JavaScript,但是当使用源映射(由browserify创建)时,IntelliJ不再触发断点.如果我使用Chrome的调试工具,一切都按预期工作,但IntelliJ似乎无法转换其断点.

有没有办法让这项工作?我花了很长时间研究这个问题,据我所知,IntelliJ支持源地图.此外,我还能够使用这种使用源映射的方法来调试GWT生成的JavaScript.

更新:似乎此问题存在当前问题.如果知道任何工作环节,我很高兴听到解决方案.


下面的答案解决了这个问题.以下是我设置gulp构建的方法:

bundler.bundle()
    .pipe(exorcist('./build/bundle.js.map', null, null, '../src'))
Run Code Online (Sandbox Code Playgroud)

./build是我生成文件夹,并../src作为JavaScript源文件的根,相对于生成的文件夹.

gCa*_*nal 2

当前的解决方法是使用Exorcist生成外部源映射。您可以设置基本路径来使用参数评估路径-b,更多信息请参阅其文档。

作为示例,我对 watchify 的调用如下所示:

bin/watchify -d -v -p [tsify --target es5] -t debowerify js/tests/karma/**/*.ts -o 'bin/exorcist -b "js/compiled/" js/compiled/tests.js.map > js/compiled/tests.js'
Run Code Online (Sandbox Code Playgroud)

请注意,插件和转换在通过管道连接在一起时可能会输出奇怪的路径;如果您的源映射不起作用,请确保 browserify 或 watchify 正确输出路径。我曾经使用 browserify 输出"../../js/tests/karma/unit/js/tests/karma/unit/Calculator.spec.ts"而不是"../../js/tests/karma/unit/Calculator.spec.ts",导致我的地图毫无用处。