标签: execjs

尽管安装了therubyracer和nodejs,但无法找到JavaScript运行时

我正在尝试在CentOS 5上运行Rails应用程序并继续收到此错误:

找不到JavaScript运行时.有关可用运行时的列表,请参阅https://github.com/sstephenson/execjs.(ExecJS :: RuntimeUnavailable)

我安装了NodeJS(v0.8.15)和therubyracer(libv8).

这是我的gem list:

*** LOCAL GEMS ***

actionmailer (3.2.9, 3.2.8)
actionpack (3.2.9, 3.2.8)
activemodel (3.2.9, 3.2.8)
activerecord (3.2.9, 3.2.8)
activerecord-sqlserver-adapter (3.2.10)
activeresource (3.2.9, 3.2.8)
activesupport (3.2.9, 3.2.8)
arel (3.0.2)
builder (3.1.4, 3.0.4)
bundler (1.2.3, 1.2.2)
capistrano (2.13.5)
commonjs (0.2.6)
daemon_controller (1.1.0)
diff-lcs (1.1.3)
erubis (2.7.0)
execjs (1.4.0)
factory_girl (4.1.0)
factory_girl_rails (4.1.0)
fastthread (1.0.7)
haml (3.1.7)
haml-rails (0.3.5)
highline (1.6.15)
hike (1.2.1)
i18n (0.6.1)
journey (1.0.4)
jquery-rails (2.1.4, 2.1.3)
json …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails node.js execjs therubyracer

8
推荐指数
1
解决办法
2316
查看次数

ExecJS :: ProgramError:意外的令牌:名称(选项)

我的应用在本地环境中运行良好.我正在尝试git push构建heroku.我的命令是:

bundle install
git add .
git commit -am "abcdef"
git push heroku master
Run Code Online (Sandbox Code Playgroud)

然后我遇到了资产问题:预编译

remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        I, [2016-01-04T08:32:35.471098 #1018]  INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js
remote:        I, [2016-01-04T08:32:35.471825 #1018]  INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js.gz
remote:        I, [2016-01-04T08:32:35.477826 #1018]  INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css
remote:        I, [2016-01-04T08:32:35.477974 #1018]  INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css.gz
remote:        I, [2016-01-04T08:32:35.575303 #1018]  INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/events-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js
remote:        I, [2016-01-04T08:32:35.575465 #1018]  INFO …
Run Code Online (Sandbox Code Playgroud)

git ruby-on-rails heroku execjs

8
推荐指数
1
解决办法
3138
查看次数

如何替换 therubyracer javascript 运行时

如何更换therubyracer宝石?我真的被困住了。

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

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

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

ruby-on-rails execjs

8
推荐指数
1
解决办法
2929
查看次数

rails execjs在使用NVM时找不到节点

我正在使用NVM来管理系统上的Node.js版本,自从我安装它以后,我的rails应用就停止工作了.

ExecJS似乎找不到节点运行时,给出错误:

Node.js (V8) runtime is not available on this system (ExecJS::RuntimeUnavailable)
Run Code Online (Sandbox Code Playgroud)

需要采取什么行动才能使NVM与ExecJS发挥良好的作用?

ruby-on-rails node.js execjs nvm

7
推荐指数
1
解决办法
1850
查看次数

[Rails 3.2.8和ExecJS 1.4.0]获取语法错误,但我该如何调试

例如,我有以下代码:

function f(p) {
 for(var i=0;i<1;i++)
  {
   p=unescape(p);
  }
  return p;
 }

 var c='something';
Run Code Online (Sandbox Code Playgroud)

当我在firebug控制台中通过它时,它返回undefined.那现在好了

当我尝试使用ExecJS运行它时.ExecJS返回:ExecJS :: RuntimeError:SyntaxError:意外的令牌变量

我无法知道从哪里开始搜索问题.有没有人有想法?

execjs

6
推荐指数
0
解决办法
412
查看次数

Rails/execjs找不到Node.js.

我通过从root用户编译和安装来安装node.js. 我想这可能是挂断的地方.从运行rails应用程序的用户我检查了node.js.

$ which node
/usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)

当我启动我的rails应用程序(Rails 3.2.9)时,我得到普遍无益的"我们很抱歉,但出了点问题." 检查生产错误日志我发现找不到Javascript运行时.这显然是安装的,这令人困惑.所以我开始强制使用Node javascript运行时.我编辑了config/boot.rb以包含:

ENV['EXECJS_RUNTIME'] = 'Node'
Run Code Online (Sandbox Code Playgroud)

我在查看生产日志时再次检查了我的应用程序.这次我收到了错误

ActionView::Template::Error (Node.js (V8) runtime is not available on this system
Run Code Online (Sandbox Code Playgroud)

仍然困惑.我去了execjs gem并将runtime命令更改为确切的安装路径.

Node = ExternalRuntime.new(
  :name        => "Node.js (V8)",
  :command     => "/usr/local/bin/node",
  :runner_path => ExecJS.root + "/support/node_runner.js",
  :encoding    => 'UTF-8'
)
Run Code Online (Sandbox Code Playgroud)

我仍然得到同样的错误.节点已安装并可由用户访问,但gem/rails似乎无法使用它.服务器运行CentOS 6.3.导致错误被抛出的特定javascript文件是jquery.nivo.slider.pack.js.从nivo下载后我没有编辑.

ruby centos ruby-on-rails node.js execjs

5
推荐指数
2
解决办法
7506
查看次数

在 Ruby (Rails) 中评估 module.exports

目前,我正在尝试Hash从 JS 中获取某种Ruby 格式的内容。

我有一个看起来像这样的 JS 模块

module.exports = {
  key1: "val",
  key2: {
    key3: "val3"
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

这只是作为一个字符串提供给我的。我知道 ExecJS 在这里可能会有所帮助,但我不确定将其转换为哈希的最佳方法是什么。

我目前正在尝试做这样的事情

contents.prepend("var module = {exports: {}};\n")
context = ExecJS.compile contents

context.eval('module.exports').to_hash
Run Code Online (Sandbox Code Playgroud)

但是当给它一个像上面这样的字符串时,我收到了来自 JSON gem 的解析错误。

javascript ruby ruby-on-rails execjs

5
推荐指数
1
解决办法
112
查看次数

能够做到之后无法推送到Heroku

我无法推进Heroku.当我试图得到一个ExecJS :: ProgramError:某种或那种.我有多个人检查我的代码,似乎没有人能够弄明白.看来我可能有一些错误的东西.

当我执行git push heroku master时,我尝试预编译资产时得到以下内容:

    Running: rake assets:precompile
   rake aborted!
   ExecJS::ProgramError: Unexpected character '#' (line: 16164, col: 0, pos: 471385)
   Error
   at new JS_Parse_Error (/tmp/execjs20140502-719-9ngq7y.js:2357:10754)
   at js_error (/tmp/execjs20140502-719-9ngq7y.js:2357:10973)
   at parse_error (/tmp/execjs20140502-719-9ngq7y.js:2357:12691)
   at Object.next_token [as input] (/tmp/execjs20140502-719-9ngq7y.js:2357:17713)
   at next (/tmp/execjs20140502-719-9ngq7y.js:2357:19012)
   at semicolon (/tmp/execjs20140502-719-9ngq7y.js:2357:19857)
   at simple_statement (/tmp/execjs20140502-719-9ngq7y.js:2357:22669)
   at /tmp/execjs20140502-719-9ngq7y.js:2357:20820
   at /tmp/execjs20140502-719-9ngq7y.js:2357:20069
   at /tmp/execjs20140502-719-9ngq7y.js:2358:40
   (in /tmp/build_e82cf52d-86e5-45ea-83e9- 

9841d4de5c60/app/assets/javascripts/application.js)/tmp/build_e82cf52d-86e5-45ea-  
83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/execjs-
2.0.2/lib/execjs/external_runtime.rb:68:in `extract_result'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/execjs-2.0.2/lib/execjs/external_runtime.rb:28:in `block in exec'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/execjs-2.0.2/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/execjs-2.0.2/lib/execjs/external_runtime.rb:27:in `exec'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/uglifier-2.5.0/lib/uglifier.rb:186:in `really_compile'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/uglifier-2.5.0/lib/uglifier.rb:110:in `compile'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/sprockets-2.11.0/lib/sprockets/uglifier_compressor.rb:25:in `evaluate'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
   /tmp/build_e82cf52d-86e5-45ea-83e9-9841d4de5c60/vendor/bundle/ruby/2.0.0/gems/sprockets-2.11.0/lib/sprockets/context.rb:197:in …
Run Code Online (Sandbox Code Playgroud)

git ruby-on-rails heroku execjs

4
推荐指数
1
解决办法
1642
查看次数

ExecJS失败,没有定义CoffeeScript

这一整天都在扼杀我.我有一个Rails应用程序,我正在从3.2升级到4.0.13,在开发中工作正常.在Rails 4的测试中,我得到了

ExecJS::ProgramError: ReferenceError: CoffeScript is not defined

在一系列的集成测试中.我没有在任何地方明确地调用或使用ExecJS,它似乎被调用coffee-script,反过来被调用coffee-rails.

我甚至不知道有什么有用的东西可以帮助你.如果我手动将我的所有coffeescript编译为javascript,这甚至会发生,所以我不认为这是我的咖啡才能实现这一点.

请随时询问东西,我会把它给你.

宝石的版本可能会触及这个:

rails 4.0.13
capybara 2.7.1
capybara-webkit 1.11.1
coffee-rails 4.2.1
coffee-script 2.4.1
execjs 2.7.0

rspec ruby-on-rails capybara execjs ruby-on-rails-4

4
推荐指数
1
解决办法
291
查看次数

使用ES6时无法预编译生产资产

我有一些代码使用模板字符串在开发中工作,但推送到Heroku失败了这个错误:

 ExecJS::RuntimeError: SyntaxError: Unexpected character '`'
Run Code Online (Sandbox Code Playgroud)

跑步bundle exec rake assets:precompile RAILS_ENV=production显示同样的事情.

代码是这样的:

`1 + 1 is ${1 + 1}`
Run Code Online (Sandbox Code Playgroud)

我想知道Heroku Node版本是否太低而无法支持.我根本没有定制这个.只需使用默认配置推送Rails 4应用程序.

ruby ruby-on-rails heroku execjs

4
推荐指数
2
解决办法
1842
查看次数