【问题标题】:What is therubyracer or libv8 for in a rails application?在 Rails 应用程序中,therubyracer 或 libv8 有什么用?
【发布时间】:2015-03-12 02:51:56
【问题描述】:

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

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

【问题讨论】:

  • 它们通常用于默认未安装 JavaScript 运行时的平台上的资产管道。因此,如果您不在目标系统上编译资产,或者系统在路径中有 JavaScript 运行时,则不需要它们。
  • 那么一个没有连接到互联网的 CentOS 服务器会不会有这个?
  • 如果服务器已经安装了 JavaScript 运行时,例如 node.js,则不需要它。我不知道 centos 是否带有 JavaScript 运行时,如果您不在 te box 上编译资产,则不需要它。 Less.rb 依赖于 commonjs,它似乎只使用 therubyracer 或 therubyrhino 在这里查看答案以获取更多信息。 stackoverflow.com/questions/18687575/…

标签: ruby-on-rails therubyracer libv8


【解决方案1】:

Rails 应用程序可能会使用 Javascript 运行时来完成一些事情:

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

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

并非每个 Rails 应用程序都使用这些功能,因此最初在 Gemfile 中注释掉了 therubyracer gem 的原因;此外请注意,您也可以使用 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

Proper "Rails" way to perform javascript on specific pages

【讨论】:

    【解决方案2】:

    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

    【讨论】:

    • 第1项,和js.erb文件有关系吗?
    • 当您使用 Rails 控制器(通过 ajax)并希望与您的 app/views/action_name.js.erb 文件中的代码进行一些交互时。该文件还将保存您的 js 代码 + 嵌入的 ruby​​ 代码。 :) 请检查:richonrails.com/articles/basic-ajax-in-ruby-on-rails
    • 在提供的链接中搜索 app/views/products/_save.js.erb:这将消除您的疑问 :)
    • 听起来很糟糕,为什么我们要从 js 调用 ruby​​ 代码,反之亦然?
    • 哎呀!!我收回我的话......我必须在Java中运行JS(将模板系统移植到java github.com/nishants/jeysongithub.com/nishants/wirestub)......如果我需要Sinatra / Rails端口,将不得不尝试rubyracer .. .... 太糟糕了,没有像 Nashorn for Java 这样的纯 ruby​​ 替代品。
    猜你喜欢
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 2020-01-15
    • 2013-11-13
    • 1970-01-01
    • 2013-02-06
    • 2022-07-24
    • 2015-09-15
    相关资源
    最近更新 更多