Tôi đang gặp lỗi này:
cào bỏ! Không thể tìm thấy thời gian chạy JavaScript. Xem https://github.com/sstephenson/execjs ,
Tôi đã dành nhiều giờ hơn để tìm kiếm google sau đó tôi sẵn sàng thừa nhận. Tôi tin rằng đây là một lỗi execJs.
Từ tất cả các bài viết, đây là một vấn đề rất phổ biến với đường ray 3.1. Một thời gian chạy js bây giờ là cần thiết bởi những gì là đá quý tiêu chuẩn như cà phê-script và sass.
Hầu hết các trường hợp này đã được giải quyết bằng cách thêm các viên đá quý 'execjs' và 'Therubyracer' vào ứng dụng Gemfile, rồi chạy 'cập nhật gói' và / hoặc 'cài đặt gói'. Nhưng không phải cho tôi.
Tôi đoán tôi đã gặp may mắn. Tôi đang chạy rails 3.1.3 / ruby 1.9 trên phiên bản cũ của Redhat Linux 4 (2.6.9-101.ELsmp) và gcc là 3.4.6.
Các bản sửa lỗi được báo cáo khác không giúp ích được gì, tôi không thể cài đặt 'nodejs', 'johnson' hoặc 'mustang', các runtimes execJs khác được cho là định vị và sử dụng. Họ sẽ không thực hiện / cài đặt trên hệ thống của tôi.
Tôi cần khắc phục sự cố khiến execJs không thể xác định được 'trị liệu'. Đây là Gemfile (và gói cài đặt nói Ok):
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'
gem 'execjs'
gem 'therubyracer'
#gem "therubyracer", :require => 'v8'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
Và đây là một dấu vết:
~/rails/316-private-pub/chatter-after>rake db:create --trace
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/config/application.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/Rakefile:5:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/usr/local/bin/rake:19:in `load'
/usr/local/bin/rake:19:in `<main>'
Không có gì thú vị trong nhật ký phát triển.
Đây là thư mục execjs:
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs>ls
disabled_runtime.rb module.rb ruby_rhino_runtime.rb version.rb
external_runtime.rb mustang_runtime.rb runtimes.rb
johnson_runtime.rb ruby_racer_runtime.rb
Tôi cũng đã thử execjs-1.2.13. Vấn đề tương tự.
Nếu tôi nhận xét execjs.rb bên dưới, tôi có thể chạy rake mà không gặp lỗi:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Nhưng sau đó tôi không nhận được thời gian chạy.
Tôi có thể thấy văn bản lỗi xuất phát từ đâu trong runtimes.rb:
def self.autodetect
from_environment || best_available ||
raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
"See https://github.com/sstephenson/execjs for a list of available runtimes.")
end
Vì vậy, câu hỏi là, vì tôi đã cài đặt 'Therubyracer', tại sao runtimes.rb không thể tìm thấy nó? Là execJs bị hỏng?
Đây là 'trị liệu':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Làm thế nào tôi có thể sửa lỗi này?