问题标签 [execjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails-3.1 - ExecJS 并且找不到 JavaScript 运行时
我正在尝试使用Mongoid / Devise Rails 3.1 模板(Mongoid和Devise),但我不断收到一条错误消息,指出ExecJS找不到 JavaScript 运行时。当我没有安装任何东西时,这很公平,但我尝试安装Node.js、Mustang和Ruby Racer,但没有任何效果。
我找不到 JavaScript 运行时。请参阅sstephenson/ExecJS (GitHub) 以获取可用运行时列表 ( ExecJS::RuntimeUnavailable
)。
我需要做什么才能使它正常工作?
ruby-on-rails - Rails 3.1 和 Heroku - 即使使用 'therubyracer-heroku' 仍然无法工作
即使我将它添加到我的 Gemfile 中,我也无法将我的 Rails 3.1rc4 应用程序部署到 Heroku:gem 'therubyracer-heroku', '0.8.1.pre3', :group => :production
我无法弄清楚问题是什么,这是日志:gist
node.js - ExecJS 问题编译 Rails 3.1 资产
我的 Rails 3.1.rc4 应用程序运行良好,但我试图找出将我的 js 文件存储在管道中的适当方法。如果我将任何代码放在 application.js 以外的文件中,我会收到以下错误:
在 2011-07-21 23:15:02 -0500 开始 GET "/assets/application.js" for 127.0.0.1 编译 ~/Dropbox/Rails/myapp/app/assets/javascripts/application.js.coffee (224ms) (pid 69397) 编译资产 application.js 时出错:ExecJS::ProgramError: SyntaxError: 第 1 行的保留字“function”(在 /Users/micahalcorn/Dropbox/Rails/myapp/app/assets/javascripts/users/registrations.js .coffee) 服务资产 /application.js - 500 内部服务器错误
无论哪个文件(registrations
在这种情况下)都会发生这种情况,并且无论文件中的第一个单词如何( , 等)都声称一个“保留字var
” function
。我使用 node.js 作为我的运行时环境,如果我删除 coffeescript 编译 gem 并将其视为 Rails 3.0 应用程序,一切正常。我想更好地了解资产管道并遵循惯例。感谢您的任何建议!
gem - 为什么我必须将 execjs 和 therubyracer 添加到我的 gemfile 才能让 rails3.1 工作?
我不喜欢处于我不明白为什么某事有效的情况。我觉得我正在使用垃圾袋和橡皮筋来修复漏水的管道。自从升级到 rails3.1 后,除非我在 gemfile 中添加“execjs”和“therubyracer”,否则我无法让它工作。我不明白这些宝石甚至做什么。我刚刚在 stackoverflow 上的某个地方读到,您必须添加它们才能使应用程序正常工作。有谁知道这些宝石是干什么用的?
javascript - 如何从 Node.js 调用 Ruby?
有几种方法可以在 Ruby 脚本中运行 JavaScript。例如,经常使用 ExecJS 将 NPM 模块移植到 Ruby。那么,是否有适用于 Node 的“ExecRuby”?
ruby-on-rails-3 - 让 Rails 与 JS 运行时环境一起工作
我正在使用 Ubuntu 11.10 和终端来安装和运行 Rails。这是我到目前为止设置 Rails 的过程:
- 下载并安装 Ruby 1.9.2 和 Rails 3.1.0——
我使用sudo apt-get ruby1.9.1
和sudo gem install rails
- 我制作了一个新的rails应用程序
rails new path/to/app
- 我去了新的应用程序目录并尝试运行
rails server
并得到一个关于没有 JS ruby 环境的错误 - 我必须为 execjs 获得一个 JS 运行时环境,所以我下载了“therubyracer”和“therubyrhino”并将它们添加到我的 gem 文件中,一次一个,如下所示:
gem 'therubyracer'
然后运行bundle install
- 在安装成功后,我
rails server
再次
运行——在两个运行时环境中我都遇到了类似的错误:
Bundle 知道这些程序在哪里,当我输入bundle show libv8
或时给出正确的路径名bundle show therubyrhino
。它们都在 /usr/lib/ruby/gems/1.9.1/gems/ _ 中,所有其他 gem 都位于其中以进行捆绑安装。
有谁知道这个异常在 Rails 源代码中出现在哪里?有谁知道 Rails 是如何收集宝石的?更好的是,有人遇到过这个问题并知道如何解决吗?
非常感谢,
费夫
ruby-on-rails - 我可以在 Rails 中使用虾生成 pdf 中的 highcharts 吗?
在我的 rails 应用程序中,我使用 highcharts 来显示一些图表。现在,我需要生成一个带有图表的 pdf(我将使用 prawn)。我想知道我是否可以在我的 pdf 中使用 highcharts。也许与 ExecJS ?还是用大虾的替代品?
谢谢!
javascript - 从 therubyracer(或 execjs)测试 ajax?
我想从 ruby 上下文中测试 javascript 代码。具体来说,我想用 ruby 设置我的数据库,用我的 javascript 模型查询它,并从 ruby 确认我的 javascript 状态。我想在没有嘲笑的情况下做到这一点。
我尝试简单地将我的客户端库加载到 v8 上下文中,但这会导致 therubyracer 以各种方式(window not defined
、userAgent not defined
等)阻塞。
此外,我使用无头浏览器来测试我的 javascript 代码,但它们没有为我提供我需要在这些情况下利用的 ruby 上下文。
我想我需要将浏览器(或 dom 模拟器)加载到 v8 上下文中,但我不知道有哪些库可以做到这一点。也许你有别的想法?
我怎样才能做到这一点?
ruby-on-rails - execJs:“找不到 JavaScript 运行时”,但 execjs 和 therubyracer 在 Gemfile 中
我收到此错误:
耙中止!找不到 JavaScript 运行时。见https://github.com/sstephenson/execjs,
我已经花了更多时间搜索谷歌然后我愿意承认。我相信这是一个 execJs 错误。
在所有帖子中,这是 rails 3.1 的一个非常常见的问题。现在像咖啡脚本和 sass 这样的标准 gem 现在需要一个 js 运行时。
通过将 gem 'execjs' 和 'therubyracer' 添加到应用程序 Gemfile,然后运行 'bundle update' 和/或 'bundle install' 来解决大多数情况。但不适合我。
我想我很幸运。我在旧版本的 Redhat Linux 4 (2.6.9-101.ELsmp) 上运行 rails 3.1.3/ruby 1.9,而 gcc 是 3.4.6。
其他报告的修复没有帮助,我无法安装“nodejs”、“johnson”或“mustang”,其他运行时 execJs 应该定位和使用。他们不会在我的系统上制作/安装。
我需要解决导致 execJs 无法找到“therubyracer”的问题。这是 Gemfile(并且 bundle install 说好的):
这是一个痕迹:
开发日志中没有任何有趣的内容。
这是 execjs 目录:
我也试过 execjs-1.2.13。同样的问题。
如果我在下面评论 execjs.rb,我可以运行 rake 而不会出现错误:
但是我没有运行时。
我可以在 runtimes.rb 中看到错误文本的来源:
所以问题是,既然我确实安装了“therubyracer”,为什么runtimes.rb 找不到它?execJs 坏了吗?
这里是“therubyracer”:
我怎样才能解决这个问题?
ruby-on-rails - 如何强制 execjs 使用 Node.js?
我有一个 rails 应用程序,我想强制 execjs 将 Node.js 用作 javascript 运行时。我什至如何检查哪个运行时 execjs 正在使用?
谢谢。