Skip to main content

6to5 + esnext

· 4 min read

过去几个月令人兴奋的是 6to5。我们已经从一个教育项目,演变为在 npm 上有 10 万次下载量,已经有 1,800 次提交和 155 次发布,我们现在支持每个主要的 JavaScript 构建系统,最近我们成为了 Sprockets 4.0 的默认构建工具。最重要的是,我们的全新网站和文档收到了成千上万的页面访问量,并且已被包括 JavaScript Weekly 在内的多家出版物推荐。

npm downloads of 6to5, traceur, and esnext

(Source: npm, includes 5-day moving point average)

然而,一切才刚开始……

6to5 的使命是,采用未来版本的 JavaScript,并将其编译为符合规范、高性能和可读的 JavaScript 文件,而这些文件我们现在就完全可以运行它们。通过内置对 JSX 和 Flow Types 的支持,比起其他转译工具,6to5 提供更多的功能。

我们的首要任务是消除 ES6+ 采纳功能的所有障碍,虽然 6to5 可能是目前功能最完善的 ES6 转译工具,但还有其他强大的项目也在试图做同样的事情。Traceur Compiler 是我们 compiler 的最常见替代品,但最不同的地方在于,它重度依赖运行时(runtime)。其他使用 6to5 类似方式的替代方案包括:es6-transpiler, es6now, jstransform 和 esnext。

esnext 是最接近 6to5 的对标工具。其通过专注于创建一个可以生成更高质量的 ES5 兼容输出(ES5-compatible output)的智能转译工具,这两个项目都很容易上手,并且都非常关心为开发人员提供最佳工具。

几个星期前,由于我们共同的使命,Stefan Penner 联系到我们,并表达了他的期望,或许我们可以通过共同努力实现想法。由于这个想法的激励,我们很快就安排了一次会议,来讨论其中的意义。

会议进展顺利:

我们已经决定,由于我们共同的目标和理念,合并这两个项目以构建更好的转译工具是有意义的。

那么,这对两个项目意味着什么?

esnext 团队将在 6to5 项目下开展工作,带来他们的技能和经验,使其更快、更符合规范。在最后,我们会帮助大家从 esnext 迁移到 6to5 - 我们已经将所有的 esnext 测试移植到 6to5 以确保没有影响到任何功能。

(目前使用的是 esnext 的)Ember CLI 用户,默认情况下可以安装 6to5 来替换 esnext。

你可以预期替换 6to5 后,代码仍然能够继续工作;我们会想方设法地发展和改进。我们希望其他人看到我们的努力而加入我们,这样我们的精力可以用来改善和竞争。

—— 6to5 团队