System.js和Babel在IE 8中不起作用

时间:2015-08-21 08:40:07

标签: javascript internet-explorer-8 babeljs systemjs

我正在开发一个使用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.我找不到其他人这个问题,所以我希望有人可以帮我解决这个问题。
提前谢谢!

0 个答案:

没有答案