我正在开发一个使用ES 6结合Babel开发者和System.js作为模块加载器的Web项目。在IE 9的所有浏览器中,运行良好,不幸的是我必须支持IE 8。
在非捆绑文件中,IE 8甚至无法加载我的main.js文件。它失败并显示以下控制台消息,但未指明任何代码行。
Potentially unhandled rejection [4] SyntaxError: Error loading "main" at http://localhost:8080/assets/js/main.js
Error loading "npm:babel-core@5.8.22" at http://localhost:8080/assets/libs/npm/babel-core@5.8.22.js
expected identifier
我使用jspm作为依赖管理器。使用jspm bundle-sfx
构建的捆绑sfx文件会产生不同的错误:
cannot read property "call" of undefined
这里至少给出一行,它指向system.js核心的以下函数:
function forEachGlobal(callback) {
iterateGlobals(function(globalName) {
if (indexOf.call(ignoredGlobalProps, globalName) != -1)
return;
try {
var value = loader.global[globalName];
}
catch(e) {
ignoredGlobalProps.push(globalName);
}
callback(globalName, value);
});
}
indexOf在将其记录到控制台时确实未定义,尽管它不应该,因为它是在文件的前面定义的。
我可以提供的唯一相关其他信息是package.json
:
{
// some metadata
"devDependencies": {
"jspm": "^0.15.7",
"jspm-bower-endpoint": "^0.3.2",
// some more grunt tasks
},
"jspm": {
"directories": {
"baseURL": "source",
"packages": "source/assets/libs"
},
"dependencies": {
// frontend libraries
},
"devDependencies": {
"babel": "npm:babel-core@^5.1.13",
"babel-runtime": "npm:babel-runtime@^5.1.13",
"core-js": "npm:core-js@^0.9.4"
},
}
}
官方说,system.js和babel都支持IE 8.我找不到其他人这个问题,所以我希望有人可以帮我解决这个问题。
提前谢谢!