Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 巴别塔迷你vs简洁(取而代之的是丑陋的js)_Javascript_Webpack_Babeljs_Uglifyjs_Babel Polyfill - Fatal编程技术网

Javascript 巴别塔迷你vs简洁(取而代之的是丑陋的js)

Javascript 巴别塔迷你vs简洁(取而代之的是丑陋的js),javascript,webpack,babeljs,uglifyjs,babel-polyfill,Javascript,Webpack,Babeljs,Uglifyjs,Babel Polyfill,我对ES6+(称为现代JavaScript)还比较陌生,但如果我想在需要或不需要的浏览器中使用它,我会觉得很奇怪。(起初我以为巴比利是另一个球员,但这只是巴贝尔的迷你版) 关于浏览器的polyfills,有类似于或的生产解决方案,通过它们可以向现代浏览器发送更小更快的代码,因为它们不需要/很少使用polyfills(快速测试浏览器,动态加载所需的polyfills,然后启动我们应用程序的主脚本)。因此,使用这些现代技术似乎是绝对合理的 在选择babel minify或terser时,我陷入了两难

我对ES6+(称为现代JavaScript)还比较陌生,但如果我想在需要或不需要的浏览器中使用它,我会觉得很奇怪。(起初我以为巴比利是另一个球员,但这只是巴贝尔的迷你版)

关于浏览器的polyfills,有类似于或的生产解决方案,通过它们可以向现代浏览器发送更小更快的代码,因为它们不需要/很少使用polyfills(快速测试浏览器,动态加载所需的polyfills,然后启动我们应用程序的主脚本)。因此,使用这些现代技术似乎是绝对合理的

在选择
babel minify
terser
时,我陷入了两难境地

在即将到来的第5版网页中,网页团队将更加简洁。
巴贝尔团队的表演
简洁
在速度上要好得多。
terser
文档是
uglify es
的一个分支,以前被广泛使用

这让我觉得我必须选择更简洁的

但另一方面,Babel仍然需要转换(并且可以用于许多有用的事情)。他们很早以前就开始经营了(虽然Babili/babel minify是在2016年8月26日,所以uglify更老)。他们在GitHub上有一个很好的开发者社区,bug可能会很快被发现并修复。基于这些,当涉及到生产安全输出时,我觉得对他们更加信任。但是我还没有发现任何文章在
terser
上显示了专业版的
babel minify

问题:

我会选择简明扼要的,因为它看起来很有希望,上面写的原因也是如此,但是:

  • 在什么情况下我应该使用
    babel minify
    而不是
    terser
  • 使用Babel软件包做所有事情有什么好处吗

在大多数情况下,您是否使用精简版或巴别塔迷你版并不重要。也就是说,使用babel minify的好处是与babel生态系统的其余部分紧密集成。如果您在像webpack这样的捆绑包之外或在CLI上使用babel,则babel minify可以与其他babel转换同时运行,因此需要的额外配置最少。如果您通过Babel loader启用了缓存,那么Babel minify也可以使用与其他Babel插件相同的缓存

最初,创建babel minify(然后是babili)是因为没有与ES6或更高版本兼容的uglify js版本,而且babel已经有了一个支持新语法的解析器。从那时起,terser已经成为一个很好的替代品,在仍然支持ES6的情况下比babel minify执行得更快(可能是因为它没有绑定到babel的转换管道)。鉴于这一点以及您列出的原因,现在最好选择的可能是简洁


一个可能的例外是,如果您使用的实验语法尚未作为ECMAScript的一部分标准化,但在babel的解析器(可能带有插件)中受支持。在这种情况下,babel minify可能会被证明是有益的。

请学习。“并不是所有的问题都符合我们的格式。避免提出主要基于观点的问题,或者可能引起讨论而不是答案的问题。”@Quentin对此表示抱歉。我只是把它编辑得更清楚些。希望现在没事了。非常感谢。好问题,我也问了同样的问题,也许网页可以解释他们为什么喜欢简洁。从提交活动来看,我想使用简洁,似乎更活跃