10

babel-preset-env提供将其useBuiltIns应用到特定的、基于环境的、.babel-polyfillimport 'babel-polyfill'import 'core-js/whatever

如果我添加babel-polyfill到我的 Webpack 条目部分(参见下面的示例),是否应用了这种转换,或者在这种情况下useBuiltIns被忽略并被所有可能的导入替换?

entry: {
  app: ['babel-polyfill', './src/app.js']
}
4

1 回答 1

3

它在您指定时起作用:

"presets": [ ..., "env" ]

我猜它与入口点无关,因为您./src/app.js已经包含了一些带有需求的代码。我只是不明白你想通过添加babel-polyfill到入口点来实现什么,但在这种情况下似乎没有效果。

我将尝试详细说明它是如何工作的。有一个babel-preset-env插件可以准备转换插件和 polyfill 的列表。该列表由transform-polyfill-require-pluginwhich 查找importrequire语句使用,并将其替换为特定于环境的模块列表。

它根本与入口点无关。通过添加babel-polyfill你只需将它的代码添加到你的包中。所以transform-polyfill-require-plugin无论如何它在那里不起作用。可以通过简单的调试来检查它。

你真的不需要它。您可以require("babel-polyfill");在您的应用程序中添加一次,正如文档中所述。您甚至不能导入babel-polyfill两次,因为它可能会导致错误,因为它会将自己写入global并检查碰撞。

于 2017-04-25T14:07:27.953 回答