rails 应用程序中的 therubyracer 或 libv8 有什么用?

What is therubyracer or libv8 for in a rails application?

我在做一个项目,经常遇到 therubyracer 和 libv8 的问题,所以我决定删除它们。它似乎是唯一使用它们作为依赖项的东西是 less-rails 无论如何我都想删除它。

我的主要问题是它们的用途是什么?在一般应用程序中我是否需要它们?如果需要,为什么?

rubyracer 提供以下功能:

 1. We can write your ruby codes inside js codes. 
 2. We can invoke the js functions from ruby codes.  
 3. Manipulation of javscript objects & the passing them to javascript functions.

这些是使用 ruby​​racer 的几个基本好处 gem。 请阅读完整的详细信息 here

Rails 应用程序可能会使用 Javascript 运行时:

1) Rails 资产管道 需要 Javascript 运行时才能执行 Javascript 压缩。

2) 某些 Rails ActionView Helpers 如 javascript_include_tag 需要 Javascript 运行时才能执行 Javascript 函数。

并非每个 Rails 应用程序都使用这些功能,因此 therubyracer gem 最初在您的 Gemfile 中被注释掉的原因;此外请注意,您也可以使用 NodeJS 作为 Javascript 运行时。

详情见:

http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression

http://www.rubydoc.info/docs/rails/ActionView/Helpers/JavaScriptHelper

http://www.rubydoc.info/docs/rails/ActionView%2FHelpers%2FAssetTagHelper%3Ajavascript_include_tag