Javascript 使用babel preset env将polyfills作为导入语句还是将其添加到webpack.config.js的条目中更好?

Javascript 使用babel preset env将polyfills作为导入语句还是将其添加到webpack.config.js的条目中更好?,javascript,webpack,ecmascript-6,babeljs,babel-polyfill,Javascript,Webpack,Ecmascript 6,Babeljs,Babel Polyfill,babel preset env提供将其应用于babel polyfill的选项,并将导入“babel polyfill”到特定的、基于环境的、导入“core js/无论什么” 如果我在我的网页条目部分添加babel polyfill(参见下面的示例),或者在这种情况下,useBuiltIns被忽略并被所有可能的导入所替换,那么是否应用了此转换 entry: { app: ['babel-polyfill', './src/app.js'] } 当您指定以下内容时,它会起作用: "pres

babel preset env
提供将其应用于
babel polyfill
的选项,并将
导入“babel polyfill”
到特定的、基于环境的、
导入“core js/无论什么”

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

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

当您指定以下内容时,它会起作用:

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

我将尝试详细说明它是如何工作的。有一个
babel预置env
插件,用于准备转换插件和polyfill的列表。此列表由
transform polyfill require plugin
使用,它查找
import
require
语句,并用特定于环境的模块列表替换它

它与入口点没有任何关系。通过添加
babel polyfill
您只需将其代码添加到您的包中。因此,
transform polyfill require插件在那里无论如何都不起作用。可以通过简单的调试来检查它


你真的不需要它。您只需添加
require(“babel polyfill”)一次在你的应用程序中,因为它在文档中被注意到。您甚至不能两次导入
babel polyfill
,因为它可能会导致错误,因为它会将自身写入
global
并检查冲突。

我的问题是,如果应用了
useBuiltIns
,而不是导入,则我将
babel polyfill
添加到我的网页入口点:在投票否决之前尝试理解答案。如果不清楚,你可以问。我扩展了答案以更精确地解释。我投了反对票,因为这个答案没有用处(根据堆栈溢出准则)。原始答案的问题在于,如果您有
require(“babel polyfill”);您正在解释为什么不需要在入口点使用
babel polyfill
导入“babel polyfill”。我可能没有明确说明的错误假设是,我的
/src/app.js
已经包含了一些带有需求的代码。谢谢你在第三段中澄清。所以答案是,它们是不同的,在入口点使用
babel polyfill
可能更糟糕。我得出的结论是,更糟糕是因为它使包更大。然而,从软件工程的角度来看,我认为在网页包中而不是在应用程序代码中使用多填充更干净。也许没有最好的选择,因为每一个都有它的优点和缺点。