如果我使用babel-polyfill,我还需要使用babel-preset-env和Babel插件吗?

tom*_*hes 5 javascript polyfills babeljs babel-polyfill babel-preset-env

我的理解是Babel Polyfill模拟完整的ES6环境,而babel-preset-env根据您需要支持的环境(浏览器)自动将ES6(及更高版本)编译为ES5.

我有几个问题:

  • 这两个设计是为了彼此并排使用,还是相互替代?

  • 如果它们被设计成彼此的替代品,是否有理由选择一个而不是另一个?还有一个表现更好吗?

  • 当使用这些工具中的任何一个时,是否仍然需要使用额外的Babel插件,或者其中一个包含我需要编写符合规范的现代JavaScript的每个插件(仅限第4阶段提案,我认为需要插件才能使用第3阶段及以下?).