如何替换 therubyracer javascript runtime

How to replace therubyracer javascript runtime

如何替换 therubyracer gem?我真的卡住了。

我们一直在为我们的 Rails 资产管道使用 therubyracer gem。但是,它使用的依赖项已经过期并且存在安全漏洞。最新版本 0.12.3 来自 2017 年 1 月 5 日。

我看过 mini_racer gem,但我们部署到 FreeBSD,FreeBSD 支持的最新版本是 0.1.14 从 2017 年 8 月 24 日开始。我们在 macOS 和我对这个版本的 mini_racer 的编译出现错误,其中之一是因为 CreateDefaultPlatform 已从 V8 中删除。

execjs 支持的运行时列表,在 https://github.com/rails/execjs 列出了 Node.jsGoogle V8 但链接转到的页面看起来不像 gems 我可以在我的 Gemfile 中替换,这些页面也没有关于如何将其运行时用于 execjs 的文档。老实说,我不知道如何在我的 Rails 管道中使用更新的运行时。

使用 therubyracer 通常已被使用机器本身上的 NodeJS 安装所取代,这意味着它不会作为 gem 安装。 Gem 需要 JS 运行时构建的安装应该足够智能,可以找到本地安装的 NodeJS。

因此在本地,您应该能够从 Gem 文件中删除 therubyracer,前提是您没有其他 gem 依赖它。如果你这样做,那些可能已经过时或被遗弃了。您的构建管道将需要修改以在安装包之前安装 NodeJS。