Angular - 如何诊断' SyntaxError:意外的令牌<'启动时致命错误

时间:2017-12-01 16:43:56

标签: angular

在修改我的Angular(2-5)依赖项之后,我总是多次遇到这种模糊的错误。

SyntaxError: Unexpected token <
    at eval (<anonymous>)
    at evaluate (http://localhost:5557/node_modules/systemjs/dist/system.src.js?1512143707276:2818:16)
    at http://localhost:5557/node_modules/systemjs/dist/system.src.js?1512143707276:3621:21
    at dynamicExecute (http://localhost:5557/node_modules/systemjs/dist/system.src.js?1512143707276:1142:26)
    at doEvaluate (http://localhost:5557/node_modules/systemjs/dist/system.src.js?1512143707276:1089:13)
    at ensureEvaluate (http://localhost:5557/node_modules/systemjs/dist/system.src.js?1512143707276:997:13)
    at http://localhost:5557/node_modules/systemjs/dist/system.src.js?1512143707276:1015:20
    at Object.eval (http://localhost:5557/app/app.module.js:15:14)
    at eval (http://localhost:5557/app/app.module.js:69:4)
    at eval (http://localhost:5557/app/app.module.js:70:3)

从哪里开始了解发生了什么?

1 个答案:

答案 0 :(得分:0)

碰巧,这个无助的堆栈跟踪起源于systemjs无法按预期下载js文件。

问题

在我的情况下,请求js文件的url格式不正确,因此响应应该是404.但是因为我的项目被配置为在404上重定向到主页,systemjs获得响应200并尝试解释html页面作为JavaScript文件。这是&#39;&lt;&#39;击中了粉丝。

根据这种理解,如何找出违规请求?

诊断 - 网络

关注网络&#39;浏览器devtool的选项卡可以帮助识别看起来像js依赖但已解析为主页(或任何其他html页面)的请求。

诊断 - 调试

查看网络请求是不切实际的,调试systemjs调用是另一种选择。如何找到合适的断点?

在Chromium中,从浏览器控制台中的堆栈跟踪开始,我点击了第一个可用元素evaluate(http://...)。尝试在此处设置断点将调试器带到另一个文件evaluate.js。在那里我能够设置一个断点并连续按下F8(恢复),同时密切注意address变量,直到出现堆栈跟踪:我找到了错误的请求。

修复

我不是这方面的专家,但可能是某些地图没有正确完成,这里an example from systemjs doc