如何将 Purescript 翻译成 ES6

How to translate Purescript into ES6

我正在寻找一种在目标平台为 JavaScript 时控制 Purescript 代码翻译格式的方法。

“spago bundle-app”为 ES5 版本生成 JavaScript 代码。

spago/pulp/purs --help 说明不了什么。

通过诸如“Purescript codegen target ES6”之类的关键字进行谷歌搜索也无济于事。

结果中出现了一些关于 ES6 和 Purescript 的讨论,但没有任何实际用处。

我找到了将 ES5 转换为 ES6 的 lebab 工具, 但我想这不是正确的方法。

PureScript 编译器主要创建 ES3 代码。这是有意为之的,因为 Ecma Script 严格向后兼容,ES3 代码 运行s 在 ES5-、ES2015-、ES2016-(等等)环境中。这意味着即使在较旧的浏览器中,由 PureScript 编译器创建的代码 运行s。

如果您来自 TypeScript 或 Babel,您可能习惯于能够选择目标。这是因为这些编译器使用 运行 彼此相继的插件。但是 PureScript 编译器没有这样的功能(因为它不像这些特定的编译器那样将 JS 转换为 JS)。

那么以更新版本为目标有什么好处呢?代码大小、性能和特性。如果您想在 FFI 代码中使用新的 ES2015 功能,那么有个好消息:您现在可以在 PureScript 0.13 中使用这些功能。也有关于在未来使编译器针对更新的 JavaScript 环境以获得上述好处的讨论。如果有人必须支持旧环境,他们仍然可以将 Babel 添加到他们的工具链中。但 PureScript 是一个小型社区项目,性能和代码大小都不是该项目的高优先级(如果是,可能会有其他优化可以产生更大的结果)。