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
可能更糟糕。我得出的结论是,更糟糕是因为它使包更大。然而,从软件工程的角度来看,我认为在网页包中而不是在应用程序代码中使用多填充更干净。也许没有最好的选择,因为每一个都有它的优点和缺点。