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