ACTUALIZACIÓN: la sugerencia de Colin de eliminar la línea // = require_tree. ha solucionado el problema.
He perdido más de 2 días tratando de seguir todas las sugerencias y solucionar mi problema. Estoy tratando de seguir el libro http://ruby.railstutorial.org en la máquina con Windows y no puedo por mi vida superar el siguiente error desagradable.
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
He probado todas las sugerencias, incluida la instalación de nodejs con msi, el uso de execjs 1.3.0 y otras cosas que ya no puedo recordar. Aquí está el archivo de gemas
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''
y aquí están las sesiones.js.coffee
# 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>
Aquí está el contenido de la consola
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)
He instalado Devkit y he probado varias gemas, pero sugiera cambios que puedan ayudarme a desarrollar en Windows. Usé rubyinstaller para todo.
¿Qué me estoy perdiendo?
fuente
//= require_tree .
deapplication.js
y ver si el error persiste?.js.coffee
archivo enapp/assets/javascripts
JavaScript y luego lo agrega a su diseño (pero solo en el modo de desarrollo; en el modo de producción, el js compilado se agrega a suapplication.js
archivo). Tenerrequire_tree .
no debería estar causando errores, por lo que de alguna manera tiene un problema con uno de los archivos que se incluyen. ¿Puede publicar una lista de todos los archivos en suapp/assets/javascripts
directorio? Además, puede intentar eliminar completamente el contenidosessions.js.coffee
y volver a agregarlo//= require_tree .
y ver si el error aún existe.Respuestas:
Mi amigo estaba intentando un tutorial de Rails en Win 8 RTM hace unos meses y se encontró con este error. No estoy seguro si este problema también existe en Windows 7, pero esto puede ayudar.
Opciones:
1) Eliminar
//= require_tree .
/ ignorar el problema - como ColinR indicó anteriormente, esta línea no debería estar causando un problema en primer lugar. Existe un problema real con ExecJS funcionando correctamente con el tiempo de ejecución de JavaScript en su sistema y eliminar esta línea es simplemente ignorar ese hecho.2) Instalando Node.js / Huyendo - Parece que muchas personas simplemente terminan instalando Node.js y usándolo en lugar del tiempo de ejecución de JavaScript que ya está en su sistema. Si bien esa es una opción válida, también requiere software adicional y solo evita el problema original, que es que ExecJS no está funcionando correctamente con el tiempo de ejecución de JavaScript en su sistema. Si se supone que el tiempo de ejecución de JavaScript existente en su sistema funciona, ¿por qué no hacerlo funcionar en lugar de instalar más software? Según el creador de ExecJS, el tiempo de ejecución ya integrado en Windows es de hecho compatible ...
3) Solucionar realmente el problema / Aprendizaje: utilice el conocimiento de las opciones 1 y 2 para buscar otras soluciones. No puedo decirles cuántas páginas web cerré al ver las opciones 1 o 2 que fueron la solución aceptada antes de encontrar información sobre el problema raíz que estábamos teniendo. La única razón por la que seguimos buscando fue que no podíamos creer que el equipo de Rails (1) insertara una línea de código en cada proyecto generado por un andamio que causara un problema, o (2) requiriera que instalemos software adicional solo para ejecutar ese predeterminado línea de código. Y así finalmente llegamos a una solución para nuestro problema raíz (sus millas pueden variar).
La solución que nos funcionó: si el sistema tiene problemas, busque el archivo runtimes.rb de ExecJS . Se parece a esto . Haga una copia del archivo encontrado para realizar una copia de seguridad. Abra el archivo runtimes.rb original para editarlo. Busque la sección que comienza con la línea
JScript = ExternalRuntime.new(
. En esa sección, en la línea que contiene:command => "cscript //E:jscript //Nologo //U",
, elimine el//U
único. Luego, en la línea que contiene:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE
- cambie UTF-16LE aUTF-8
. Guarde los cambios en el archivo. Esta sección del archivo ahora debería leer:A continuación, deténgase y reinicie su servidor Rails y actualice la página en su navegador que produjo el error original. Es de esperar que la página se cargue sin errores ahora. Aquí está el hilo de problemas de ExecJS donde originalmente publicamos nuestros resultados: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952
Si esto no solucionó el problema, siempre puede sobrescribir el runtimes.rb modificado con la copia de seguridad que (con suerte) hizo y todo volverá al punto de partida. En ese caso, considere la opción 3 y siga buscando. Háganos saber lo que finalmente funciona para usted ... a menos que se elimine el require_tree o instale node.js, ya hay mucho de eso. :)
fuente
UTF-16LE
aUTF-16
sin eliminar la//U
opción. Yo lo confirmé.Tuve el mismo problema OS- Error de Windows 8- 'ExecJS :: RuntimeError ...' Solución- Falta Node.js
fuente
Tuve este problema y estaba navegando por Internet.Estoy ejecutando Windows 8 con este archivo de gemas de rieles
Fui a http://nodejs.org/download/ instalado: reinicié la máquina y todo funcionó.
fuente
Preferí la ruta del aprendizaje . Parece que el problema proviene de
devolviendo una cadena vacía en
execjs\external_runtine.rb
(línea 173 en la versión 1.4.0). Es por eso que el mensaje de error no contiene texto. Los cambios sugeridos no funcionaron para mí. CambiéUTF-16LE
aUTF-8
, pero todavía devolvió una cadena vacía. Me quité\\U
de lacommand
, al menos este texto devuelto, pero estaba en la codificación incorrecta, en el navegador se mostraba como caracteres chinos.De acuerdo con esta publicación de blog de MSDN , usar la
//U
bandera y redirigir a un archivo hacecscript
que se devuelva el resultado usandoUTF-16
.Y luego, mágicamente, funcionó ( @ #% $ & ^ @ $% !!!?!?!) Usando
command
as"cscript //E:jscript //Nologo"
yencoding
as"UTF-8"
. Oh bien.fuente
Tuve que agregar mi carpeta nodejs a mi variable de entorno Windows Path. En Windows 8, abra el Panel de control, vaya a Sistema, Configuración avanzada del sistema (a la izquierda), haga clic en Variables de entorno a la izquierda y edite la variable Ruta para incluir el directorio en su carpeta nodejs (probablemente en Archivos de programa).
Por supuesto, debe tener instalado Node.js (use el instalador de Windows ) y haber instalado CoffeeScript a través de NPM.
fuente
Sé que esta es una respuesta muy tardía para este problema, pero encontré algo similar y seguí el camino completo para comprender qué estaba causando realmente el problema.
Resultó que el motor jscript de Windows predeterminado todavía está en es3, y muchas gemas están aprovechando las características de es5 o es6. Desafortunadamente, si esto sucede (está utilizando una gema o un fragmento de código que aprovecha las características de es5 o es6), no hay forma de permitir que funcione en Windows con el motor js nativo.
Esta es la razón por la que la instalación de node.js resuelve el problema (el nodo es al menos es5).
Espero que esto pueda ayudar a algunas personas que luchan con un error de tiempo de ejecución de jsexec.
Mi consejo de 2 centavos es instalar el nodo (muy fácil) o instalar v8, y no eliminar el // = require_tree.
Tenga en cuenta que los execjs usarán automáticamente el nodo si se detectan. De lo contrario, fuerce su uso, agregando en el arranque algo como:
Para configurar el env en node.
fuente
Para los usuarios de Windows, esto puede funcionar. Hay un problema con coffee-script-source> 1.9.0 ejecutándose en Windows.
Parece que tienes que agregar esto a tu archivo de gemas:
gema 'coffee-script-source', '1.8.0'
entonces hazlo
paquete actualización coffee-script-source
Probé todas las opciones anteriores, y también mezclé algunas combinaciones de ellas, hasta que encontré este Rails-4, ExecJS :: ProgramError en Pages # welcome y había realizado múltiples actualizaciones de gemas del sistema e instalaciones y actualizaciones de paquetes.
Revertí todas mis pruebas y bajé mi fuente de script de café y funciona. Publicar aquí para ayudar a cualquier otra persona que pueda tener un problema similar.
Actualización de archivos en proveedor / caché
coffee-script-source-1.8.0.gem Eliminando archivos .gem obsoletos de vendor / cache coffee-script-source-1.9.1.1.gem ¡Paquete actualizado!
fuente
Para principiantes como yo:
Cambie la línea 6 de:
'<% = javascript_include_tag' aplicación ',' data-turbolinks-track '=> true%>'
a
Fuente del tutorial para arreglar aquí
fuente
<%= stylesheet_link_tag 'defaults', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'defaults', 'data-turbolinks-track': 'reload' %>
gracias Leandro P.Solución rápida y sucia: quitar
//= require_tree .
deapplication.js
.Como explico en los comentarios de la pregunta, esto en realidad no resuelve el problema subyacente que está causando el error, sino que simplemente lo elude.
fuente
Usé la solución número 2 porque anteriormente tuve este error, pero en esta situación no funcionó, luego agregué el
gem 'coffee-script-source', '1.8.0'
y correr
y mi problema fue solucionado
fuente
Aquí hay una solución menos complicada para principiantes:
Si solo está trabajando en el tutorial, probablemente esté trabajando con el Gemfile predeterminado (o casi). Puede abrirlo en su editor de texto y eliminar el signo de almohadilla del frente de esta línea:
Deberá volver a ejecutarlo
bundle install
, lo que probablemente descargará algunas cosas. Pero una vez que lo haga, debería poder iniciar el servidor sin ningún problema.Al menos, eso funcionó para mí.
Esto también funciona en Ubuntu 12.04, por cierto.
fuente
Ejecutando Win 8 64 bit rails 4.2.5 ruby 2.1.7
Este funcionó para mi
fuente
¿Cambió la ubicación de su código de C: \ Users \ this-user \ yo-app ?
Cuando era joven en rieles, creé una aplicación y la ubicación predeterminada de mi aplicación era C: \ Users \ Duncan \ my-app y luego, cuando cambié mi aplicación y la coloqué en D: \ All-my-Apps -carpeta tuve ese error ....
Me rasqué la cabeza, probé 1, 2, 3 y más ... ¡nada! Hasta que devolví todo el código a la ubicación de la carpeta predeterminada y para mi asombro, estaba rodando de nuevo :)
En caso de que alguien pueda encontrar esto útil (no puedo explicar por qué sucedió eso, tal vez alguien pueda sin especular)
fuente