如何替换 therubyracer 的 JavaScript 运行时

7

我该如何替换therubyracer宝石?我真的卡住了。

我们一直在使用therubyracer宝石来构建Rails资产管道。然而,它使用的依赖已经过时且存在安全漏洞。最新版本0.12.3发布于2017年1月5日。

我尝试了mini_racer宝石,但是我们部署到FreeBSD上,FreeBSD支持的最新版本是从2017年8月24日的0.1.14。我们在macOS上进行开发,我的这个版本mini_racer编译出错,其中一个错误是因为V8中已删除了CreateDefaultPlatform函数。

https://github.com/rails/execjs列出了execjs支持的运行时列表,包括Node.jsGoogle V8,但链接跳转的页面并不像可以在Gemfile中替换的宝石,并且这些页面也没有关于如何在execjs中使用这些运行时的文档。我真的陷入了困境,不知道如何在我的Rails资产管道中使用更新的运行时。

1个回答

6

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

因此,在本地,您应该可以从 Gemfile 中删除 therubyracer,假设您没有其他依赖于它的 gem。如果有,那些可能已经过时或被放弃了。您的构建流程需要修改以在 bundle install 之前安装 NodeJS。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接