Je suis en utilisant webpack à s'emmitoufler mon JavaScript. Je suis en fonction des modules comme popsicle qui utilisent tout-promesse.
Voici mon code:
var popsicle = require('popsicle');
popsicle.get('/').then(function() {
console.log('loaded URL');
});
Cela fonctionne bien dans les navigateurs Promise
est disponible, mais IE 11 ne fournit pas de Promesse. Je tiens donc à utiliser es6-la promesse comme un polyfill.
J'ai essayé d'ajouter explicitement ProvidePlugin
mon webpack.config.js
:
plugins: [
new webpack.ProvidePlugin({
'Promise': 'exports?global.Promise!es6-promise'
})
]
Mais j'ai toujours l'erreur dans IE 11: any-promise browser requires a polyfill or explicit registration e.g: require('any-promise/register/bluebird')
.
J'ai essayé explicitement de la fixation d'un mondial:
global.Promise = global.Promise || require('es6-promise');
Mais IE 11 donne une autre erreur: Object doesn't support this action
.
J'ai aussi essayé explicitement l'inscription es6-la promesse:
require('any-promise/register/es6-promise');
var popsicle = require('popsicle');
Cela fonctionne, mais je dois le faire dans tous les fichier qui se charge popsicle
. Je veux juste l'attacher Promise
de window
.
Comment puis-je garantir window.Promise
est toujours défini, à l'aide de webpack?