2

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 を使用しています。でビルドされたバンドルされた sfx ファイルでjspm bundle-sfxは、別のエラーが発生します。

cannot read property "call" of undefined

ここでは、少なくとも 1 つの行が指定されており、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 をサポートしています。この問題を抱えている他の人を見つけることができなかったので、誰かがその問題を解決するのを手伝ってくれることを願っています。
前もって感謝します!

4

0 に答える 0