在修改我的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)
从哪里开始了解发生了什么?
答案 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。