首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >源映射不接受的Dart2js错误行号

源映射不接受的Dart2js错误行号
EN

Stack Overflow用户
提问于 2015-08-30 14:45:59
回答 1查看 122关注 0票数 2

我试图从dart2js生成的javascript中获取有用的错误。

通过将此代码放置在我的index.html中:

代码语言:javascript
复制
window.addEventListener(
    'error',
    function(e){
        ga(
            'send',
            'event',
            'JS Error',
            'msg:'+e.message,
            'line:'+e.lineno+' col:'+ e.colno+' file:'+e.filename,
            {'nonInteraction':1}
        );
    },false);

我让谷歌分析给我行号和栏号的错误发生给我的网站的用户。

然后,我使用mozilla的源地图使用者来查找原始错误发生的位置,如以下所示(使用github/mozilla/ source-map /):

代码语言:javascript
复制
// some code removed for readability
require(["source-map/source-map-consumer"], function(SMC) {

var input = {
    line: parseInt(line),
    column: parseInt(col)
};

// rawSourceMap contains the dart2js generated source-map
var smc = new SMC.SourceMapConsumer(rawSourceMap);

console.log(smc.originalPositionFor(input));

问题是我所得到的只有:

代码语言:javascript
复制
{
"source": null,
"line": null,
"column": null,
"name": null
}

当我期待着像这样的东西的时候

代码语言:javascript
复制
{
"source": "image.dart",
"line": 324,
"column": 2,
"name": "clickController"
}

到目前为止,我发现错误的行号类似于这个line: 6862, column: 31 (高行数a和低列数)。

经过一些测试和使用line: 7140, column: 1692后,我发现给出结果的linenumbers类似于line: 7140, column: 1692(高行数和高列数)。

我的问题:

有人知道为什么dart2js javascript文件会产生dart2js源图文件无法理解的错误吗?(以及如何解决这个问题)

谢谢你的帮助,

亨德里克·扬

一些额外的信息:

pubspec.yaml看起来如下所示:

代码语言:javascript
复制
name: bones
description: A sample web application
dependencies:
  browser: any
  observe: any
transformers:
  - $dart2js: {"minify":true, "checked":false}

我已经尝试过"minify":false"checked":true,但没有结果。

一个错误如下所示:

代码语言:javascript
复制
Uncaught Uncaught Error: Invalid argument(s) Stack Trace: Invalid argument(s) at dart.b (.../script.dart.js?0:1245:3) at F.dart.F.T (.../script.dart.js?0:479:48) at J.aF ... and so on ...
EN

回答 1

Stack Overflow用户

发布于 2015-09-01 06:07:51

我只是猜测(因为我没有看到堆栈跟踪),但是顶部的框架可能是一个助手函数。例如,dart2js可能会创建一个助手函数"iae",而不是在主体内抛出一个非法的参数异常,然后调用该函数。

这会导致代码变小,但是顶部框架是源文件中不存在的函数。iae函数也将由所有调用者共享,无助于调试。你走下框的方法应该是正确的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32297761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档