如何获得比“ bundle.js的第4308490384行”更有意义的堆栈跟踪?

时间:2019-12-17 14:13:41

标签: angular karma-jasmine

我正在研究一个非常复杂的Angular 4.4应用程序。它炸毁了,这是我得到的堆栈跟踪:

ERROR Error: "[object Object]"
    resolvePromise http://localhost:4300/polyfills.bundle.js:7118
    resolvePromise http://localhost:4300/polyfills.bundle.js:7075
    scheduleResolveOrReject http://localhost:4300/polyfills.bundle.js:7179
    invokeTask http://localhost:4300/polyfills.bundle.js:6710
    onInvokeTask http://localhost:4300/vendor.bundle.js:370092
    invokeTask http://localhost:4300/polyfills.bundle.js:6709
    runTask http://localhost:4300/polyfills.bundle.js:6482
    drainMicroTaskQueue http://localhost:4300/polyfills.bundle.js:6888
    invokeTask http://localhost:4300/polyfills.bundle.js:6789
    invoke http://localhost:4300/polyfills.bundle.js:6774
    timer http://localhost:4300/polyfills.bundle.js:8568
vendor.bundle.js:367231:19

在bundle.js的第367231行中,我如何获得[object object]更有意义的东西?

FWIW,此特定行尝试console.log一个values变量,该变量原来是一个在执行时返回空字符串的函数。它似乎是角度代码的内部代码,因为它在所有注释中都有(c) Google

我尝试运行ng serve --build-optimizer=false,但它仍然可以优化。我的.angular-cli.json中没有一个选项可以切换此选项。

我也不明白为什么似乎要构建源地图,但是没有选择它们来进行有意义的跟踪:

Date: 2019-12-17T14:39:51.960Z
Hash: 436f24accaf17c10807d
Time: 22366ms
chunk {inline} inline.bundle.js, inline.bundle.js.map (inline) 5.83 kB [entry] [rendered]
chunk {main} main.bundle.js, main.bundle.js.map (main) 332 kB {vendor} [initial] [rendered]
chunk {polyfills} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 365 kB {inline} [initial] [rendered]
chunk {styles} styles.bundle.js, styles.bundle.js.map (styles) 1.02 MB {inline} [initial] [rendered]
chunk {vendor} vendor.bundle.js, vendor.bundle.js.map (vendor) 15.4 MB [initial] [rendered]

1 个答案:

答案 0 :(得分:0)

解决方案是使用Chrome ...正如我认为Chrome对互联网不利一样,此问题已得到解决。它显示实际错误而不是[object Object],并使用源映射在原始代码中而不是在缩小的捆绑工件中显示确切点。