首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用babel-preset-env时,Babel不能进行多层填充获取

使用babel-preset-env时,Babel不能进行多层填充获取
EN

Stack Overflow用户
提问于 2017-07-04 22:03:17
回答 4查看 13.5K关注 0票数 12

我正在使用Webpack和巴别塔来构建和转换我的ES6代码。然而,在尝试支持较旧的浏览器时,我错过了重要的Polyfills。例如iOS8。

这是我的Webpack.config

代码语言:javascript
复制
const versions = {
  v1: './src/js/v1.js',
  v2: './src/js/v2.js',
  v3: './src/js/v3.js',
};

module.exports = {
  entry: versions,
  output: {
    path: __dirname + '/dist',
    filename: '[name].min.js'
  },
  externals: {
    'jquery': 'jQuery'
  },
  module: {
    loaders: [
      { 
        test: /\.js$/, 
        exclude: /node_modules/, 
        loader: 'babel-loader',
      }, {
        test: /\.hbs$/,
        loader: 'handlebars-loader',
      }
    ]
  }
}

和我的.babelrc文件:

代码语言:javascript
复制
{
  "presets": [
    ["env", {
      "targets": {
        "browsers": ["last 3 versions", "iOS >= 8"]
      }
    }]
  ]
}

首先,为什么不添加这种填充?其次,我如何添加它?我尝试将它添加到我的.babelrc "plugins": ["whatwg-fetch"]中,但没有成功。

我相信我可以将它添加到我的Webpack配置的条目中,但这在我的实例中不起作用,因为我有多个脚本要单独构建。

提前感谢您的帮助。我的头发越来越少,我要特别感谢!

EN

回答 4

Stack Overflow用户

发布于 2017-07-04 22:14:07

您可以在webpack.config.js文件中添加fetch的分辨率。

代码语言:javascript
复制
new webpack.ProvidePlugin({
  'fetch': 'imports-loader?this=>global!exports-loader?global.fetch!whatwg-fetch'
})

在您的plugins部分中。在此之后,在您的代码中,只需使用fetch。您无论如何都不需要导入它。当然,您需要imports-loaderexports-loader

票数 10
EN

Stack Overflow用户

发布于 2020-08-01 02:09:22

首先,您尝试为web/DOM标准添加polyfill,而不是JS polyfill。Babel只处理标准ECMAScript语言的转译和多层填充功能,它不像fetch那样处理web/浏览器规范。所以你不应该在Webpack中用巴别塔加载器加载它。

我自己也尝试过这里提供的其他解决方案,但它们都不再有效。对于我来说,只需安装npm i whatwg-fetch --save-dev包,然后将其添加到entry配置选项字段中,如下所示:

代码语言:javascript
复制
module.exports = {
  entry: ["whatwg-fetch", "./src/yourapp.js"]
}

其中./src/yourapp.js应该是你的应用的入口点。我贴出这篇文章,以防有人遇到同样的问题,而其他解决方案不起作用。

票数 4
EN

Stack Overflow用户

发布于 2019-06-20 16:35:50

Babel不会为web规范添加polyfill。您只能使用polyfills来实现列出here的ECMAScript提案。它需要手动实现。可以使用Github's fetch polyfill或其他替代方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44908044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档