Essentiellement Webpack ajoute un code au début du paquet:Comment intégrer le bootstrap de Webpack avec IE8 qui a Object.defineProperty?
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
Ce qui provoque une erreur avec IE8 (Object.defineProperty
est pas défini). J'utilise babel es2015-loose
prédéfini comme chargeur de sorte qu'il ne devrait pas être un problème (il génère stub si je veux l'utiliser ailleurs):
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var obj = (_obj = {}, _defineProperty(_obj, "x" + foo, "heh"), _defineProperty(_obj, "y" + bar, "noo"), _defineProperty(_obj, "foo", "foo"), _defineProperty(_obj, "bar", "bar"), _obj);
Mon tout le code (dépôt spécial pour reproduire ce problème) est here, pointing to particular commit. Vous pouvez vérifier cela en exécutant l'assertion validate.sh
.