将蛋白化 Ruby gem 编译为 Node 包

Compile an opalized Ruby gem to Node package

根据文档和指南,我不清楚以下内容是否适用于 Opal:

我写了一个 builder gem,它实现了一个 API 来构建一个对象树,然后将其写入 XML(或者准确地说是 AIXM,一种航空格式)。当前存在运行时依赖项,但我可以摆脱它们。

有一个 guide on configuring gems for Opal,但是,是否可以在 JavaScript 项目中使用蛋白化 gem?或者将其转换为 Node 包?

我们目前正在设计良好的 NPM 集成。但就目前而言,是的。您可以将 Opal 项目构建为 .js(或 .mjs)文件,并在 Node 环境中要求它。

但有一个问题:Opal​​ 在 JS 环境中表现不佳,因为它定义了全局变量、修改了原型等 - 它可能会造成混乱,尽管多年来已经解决了大多数不兼容问题(无论如何,您可以考虑 运行 WebWorker 中的 Opal 代码)。这里的主要问题是这样的包会无意中包含 opal corelib - 你应该注意只包含一次。因此,应用程序的 Opal 部分应该一起编译,而不是一起拆分成多个包。我们将在接下来的几个月中努力解决该问题。

关于从 JS 连接 Opal,你应该看看这个:https://github.com/opal/opal/blob/master/docs/compiled_ruby.md#ruby-from-javascript