繁体   English   中英

如何将babel-polyfill用于多个分离的条目/输出?

[英]How can I use babel-polyfill for multiple separated entries / outputs?

我在webpack.config.js有这个来从两个源创建两个不同的输出:

module.exports = {
  entry: {
    'dist/index.js': ['babel-polyfill', './src/Component.jsx'],
    'example/bundle.js': ['babel-polyfill', './src/Page.jsx'],
  },
  output: {
    path: './',
    filename: '[name]',
  },
  ...

使用webpack编译它可以正常工作,但如果我在浏览器中加载index.js ,我会收到此错误:

未捕获的错误:只允许一个babel-polyfill实例

我需要babel-polyfill用于两个输出。 我能做什么?

在开发库(而不是应用程序)时,Babel团队不建议在库中包含babel-polyfill 我们建议:

  1. 假设存在ES6全局变量,因此您将指示库用户在自己的代码库中加载babel-polyfill
  2. 通过启用babel-plugin-transform-runtime来使用babel-runtime ,它会尝试分析您的代码以确定您正在使用的ES6库功能,然后重写代码以从babel-runtime而不是全局范围加载polyfilled逻辑。 这种方法的一个缺点是它无法.prototypeArray.prototype.find这样的新.prototype方法,因为它无法知道foo.find是否是一个数组。

所以我的建议是完全从你的dist/index.js包中删除babel-polyfill

使用idempotent-babel-polyfill

import 'idempotent-babel-polyfill';

https://github.com/codejamninja/idempotent-babel-polyfill

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM