如何用webpack填充Promise?

JavaScript Webpack

LEY古一阿飞

2020-03-24

我正在使用webpack捆绑我的JavaScript。我依赖像popsicle这样的模块,它们使用any-promise

这是我的代码:

var popsicle = require('popsicle');
popsicle.get('/').then(function() {
  console.log('loaded URL');
});

Promise可用的浏览器中,此方法工作正常,但IE 11不提供Promise所以我想使用es6-promise作为polyfill

我试图添加一个显式ProvidePlugin到我的webpack.config.js

plugins: [
  new webpack.ProvidePlugin({
    'Promise': 'exports?global.Promise!es6-promise'
  })
]

但是我仍然在IE 11中收到错误:any-promise browser requires a polyfill or explicit registration e.g: require('any-promise/register/bluebird')

我尝试显式附加全局变量:

global.Promise = global.Promise || require('es6-promise');

但是IE 11给出了另一个错误:Object doesn't support this action

我还尝试过明确注册es6-promise:

require('any-promise/register/es6-promise');
var popsicle = require('popsicle');

这行得通,但是我必须在每个加载的文件中都这样做popsicle我想他们只是在Promisewindow

我如何确保window.Promise始终使用webpack进行定义?

完整的回购演示在这里

第3557篇《如何用webpack填充Promise?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

0个回答

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android