104 votes

ExecJS::RuntimeError sur Windows essaie de suivre rubytutorial

Mise à JOUR: Colinla suggestion de la suppression de la ligne //= require_tree . a fixé le problème.

J'ai perdu plus de 2 jours à essayer de suivre toutes les suggestions là et de résoudre mon problème. Je suis en train de suivre le http://ruby.railstutorial.org livre sur la machine windows et ne peut pas pour la vie de me passé le suivant méchant erreur.

ExecJS::RuntimeError in Static_pages#home

Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised:

["ok","(function() {\n\n\n\n}).call(this);\n"]
(in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)
Extracted source (around line #6):

3: <head>
4:   <title><%= full_title(yield(:title)) %></title>
5:   <%= stylesheet_link_tag    "application", media: "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8:   <%= render 'layouts/shim' %>
9: </head>
Rails.root: C:/Users/.../bootcamp-sample-app

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'
Request

J'ai essayé toutes les suggestions, y compris l'installation de nodejs avec le msi, à l'aide de execjs 1.3.0 et les autres choses dont je ne peux pas me souviens même plus du tout. Ici, c'est le joyau de fichier

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.10.0'
  gem 'guard-rspec', '0.5.5'
  gem 'guard-cucumber'
end

group :development do
  gem 'annotate', '2.5.0'
end


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'coffee-script'
  gem 'uglifier'
end

gem 'jquery-rails', '2.0.2'

gem 'execjs'

# Gems on Linus/Mac
#gem 'therubyracer'


group :test do
  gem 'capybara', '1.1.2'
  gem 'guard-spork', '0.3.2'
  gem 'spork', '0.9.0'
  gem 'factory_girl_rails', '1.4.0'
  gem 'cucumber-rails', '1.2.1', require: false
  gem 'database_cleaner', '0.7.0'


# Test gems on Linux
#  gem 'rb-inotify', '0.8.8'
#  gem 'libnotify', '0.5.9'

# Test gems on Macintosh OS X
#  gem 'selenium-webdriver', '~> 2.22.0'
#  gem 'rb-fsevent', '0.9.1', :require => false
#  gem 'growl', '1.0.3'

# Test gems on Windows
# gem 'rb-fchange', '0.0.5'
# gem 'rb-notifu', '0.0.4'
# gem 'win32console', '1.3.0'
end

group :production do
#  gem 'therubyracer'
  gem 'pg', '0.12.2'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
#gem 'debugger''

et voici les sessions.js.café

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require bootstrap

application.html.erb

<!DOCTYPE html>
 <html>
 <head>
   <title><%= full_title(yield(:title)) %></title>
   <%= stylesheet_link_tag    "application", media: "all" %>
   <%= javascript_include_tag "application" %>
   <%= csrf_meta_tags %>
   <%= render 'layouts/shim' %>
 </head>
 <body>
 <%= render 'layouts/header' %>
 <div class="container">
   <%= yield %>
   <%= render 'layouts/footer' %>
 </div>
 </body>
 </html>

Voici la console de contenu

Processing by StaticPagesController#home as HTML
  Rendered static_pages/home.html.erb within layouts/application (45.0ms)
Completed 500 Internal Server Error in 1136ms

ActionView::Template::Error (["ok","(function() {\n\n\n\n}).call(this);\n"]
  (in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)):
    3: <head>
    4:   <title><%= full_title(yield(:title)) %></title>
    5:   <%= stylesheet_link_tag    "application", media: "all" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8:   <%= render 'layouts/shim' %>
    9: </head>
  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'


  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (34.0ms)

J'ai installé Devkit et ont essayé de diverses pierres précieuses, mais s'il vous plaît suggérer des changements qui peuvent m'aider à développer sur windows. J'ai utilisé rubyinstaller pour tout.

Ce qui me manque?

242voto

Kevin P Points 2546

Mon ami a essayé un Rails de tutoriel sur Win 8 RTM il y a quelques mois et a couru dans cette erreur. Vous ne savez pas si ce problème existe dans Windows 7, mais cela peut aider.

Options:

1) l'élimination //= require_tree . / Ignorer le problème - Comme ColinR indiqué ci-dessus, cette ligne ne devrait pas être à l'origine d'un problème en premier lieu. Il y a un réel problème avec ExecJS fonctionne correctement avec le runtime JavaScript dans votre système et les supprimer cette ligne est juste ignorer ce fait.

2) l'Installation de Node.js de Course ou de loin - Beaucoup de gens semblent juste la fin de l'installation Node.js et en l'utilisant à la place de la runtime JavaScript déjà sur leur système. Alors que c'est une option valable, il faut aussi un logiciel supplémentaire et qu'elle évite le problème d'origine, qui est que ExecJS ne fonctionne pas correctement avec le runtime JavaScript déjà sur votre système. Si le code JavaScript d'exécution sur votre système est censé fonctionner, pourquoi ne pas faire le travail au lieu d'installer un autre logiciel? Selon le ExecJS créateur, le moteur d'exécution déjà intégré dans Windows est en fait pris en charge...

ExecJS vous permet d'exécuter du code JavaScript à partir de Ruby. Il choisit automatiquement la meilleure exécution disponibles pour évaluer le JavaScript de votre programme, puis renvoie le résultat à vous comme un Rubis objet.

ExecJS prend en charge ces temps de fonctionnement:

  • therubyracer - Google V8 intégré au sein de Ruby
  • therubyrhino - Mozilla Rhino intégré au sein de JRuby
  • Node.js
  • Apple JavaScriptCore - Inclus avec Mac OS X
  • Microsoft Windows Script Host (JScript)

(à partir de github.com/sstephenson/execjs#execjs )

3) en Fait pour résoudre le problème / l'Apprentissage de l'Utilisation des connaissances des options 1 et 2 pour rechercher d'autres solutions. Je ne peux pas vous dire combien de pages j'ai fermé en voyant les options 1 ou 2 a été la solution retenue avant de trouver de l'information sur le problème de base que nous avions. La seule raison pour laquelle nous avons gardé la recherche était que nous ne pouvions en croire les Rails, l'équipe de (1) insérer une ligne de code dans chaque échafaudage généré projet qui a causé un problème, ou (2) nous demandent d'installer de logiciel supplémentaire juste pour exécuter cette ligne de code par défaut. Et donc, nous nous sommes finalement arrivés à un correctif pour résoudre notre problème de base (vos miles peut varier).

Le Correctif qui a fonctionné pour nous: Sur le système d'avoir des problèmes, trouver des ExecJS du temps de fonctionnement.rb fichier. Il ressemble à ceci. Faites une copie du fichier de sauvegarde. Ouvrez le fichier original runtimes.rb pour l'édition. Trouver la section qui commence avec la ligne, JScript = ExternalRuntime.new(. Dans cette section, sur la ligne contenant :command => "cscript //E:jscript //Nologo //U", - suppression de l' //U seulement. Puis sur la ligne contenant :encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE - changement UTF-16LE d' UTF-8 . Enregistrer les modifications dans le fichier. Cette section du fichier doit indiquer:

JScript = ExternalRuntime.new(
    :name        => "JScript",
    :command     => "cscript //E:jscript //Nologo",
    :runner_path => ExecJS.root + "/support/jscript_runner.js",
    :encoding    => 'UTF-8' # CScript with //U returns UTF-16LE
)

Ensuite, arrêtez puis redémarrez votre serveur Rails et actualisez la page dans votre navigateur qui a produit l'erreur d'origine. J'espère que la page se charge sans erreur maintenant. Voici la ExecJS problème de thread où nous avons posté nos résultats: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952

Si cela ne corrige pas le problème, vous pouvez toujours remplacer la modification de temps de fonctionnement.rb avec la copie de sauvegarde que vous (je l'espère) fait et tout sera revenu à la case départ. Dans ce cas, envisager l'option 3 et continuer à chercher. Laissez-nous savoir ce qui fonctionne pour vous.. sauf si c'est de retirer le require_tree ou de l'installation node.js, il ya beaucoup de qui va autour déjà. :)

14voto

candlesurfer Points 41

Eu le même problème OS - Windows 8 Erreur- 'ExecJS::RuntimeError...' Solution - manquant Node.js

  1. installer Node.js à partir de http://www.nodejs.org/download/
  2. Redémarrez l'ordinateur

12voto

J'ai eu ce problème et a été scowering internet, je suis sous Windows 8 avec cette gem rails de fichier

source 'https://rubygems.org'

gem 'rails', '3.2.9'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

group :development do gem 'sqlite3', '1.3.5' 
end

# Gems used only for assets and not required # in production environments by default. 

group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2'

gem 'uglifier', '1.2.3' 
end

gem 'jquery-rails', '2.0.2'

group :production do 
    gem 'pg', '0.12.2' 
end

Est allé à http://nodejs.org/download/ installé, redémarré la machine et tout a fonctionné.

4voto

Evan Points 151

J'ai dû ajouter mon nodejs dossier de ma variable d'environnement Path. Dans Windows 8, ouvrez le Panneau de configuration, aller dans Système, paramètres système Avancés (sur la gauche), cliquez sur Variables d'Environnement sur la gauche, et de modifier la variable Path pour inclure le répertoire de votre nodejs dossier (probablement dans Program Files).

Bien sûr, vous devez avoir Node.js installé (utilisez le programme d'installation de Windows) et installé CoffeeScript par MNP.

2voto

Colin R Points 8875

Rapide et sale solution: retirez //= require_tree . de application.js.

Comme je l'explique dans les commentaires à la question, ce n'est pas réellement résoudre le problème sous-jacent qui est à l'origine de l'erreur, mais simplement de côté.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X