ExecJS::RuntimeError op Windows probeert rubytutorial te volgen

UPDATE:Colin‘s suggestie om de regel //= required_tree te verwijderen . heeft het probleem opgelost.

Ik heb meer dan 2 dagen verspild aan het proberen om elke suggestie die er is op te volgen en mijn probleem op te lossen. Ik probeer het boek http://ruby.railstutorial.orgte volgen op een Windows-machine en kan niet voor het leven van me voorbij de volgende vervelende fout.

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

Ik heb elke suggestie geprobeerd, inclusief het installeren van nodejs met de msi, het gebruik van execjs 1.3.0 en andere dingen die ik me niet eens meer kan herinneren. Hier is het gem-bestand

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''

en hier is de sessions.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

applicatie.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>

Hier is console-inhoud

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)

Ik heb Devkit geïnstalleerd en heb verschillende edelstenen geprobeerd, maar stel alstublieft wijzigingen voor die me kunnen helpen bij het ontwikkelen op Windows. Ik heb rubyinstaller voor alles gebruikt.

Wat mis ik?


Antwoord 1, autoriteit 100%

Mijn vriend probeerde een paar maanden geleden een Rails-tutorial op Win 8 RTM en kwam deze fout tegen. Ik weet niet zeker of dit probleem zich ook voordoet in Windows 7, maar dit kan helpen.

Opties:

1) Verwijderen van //= require_tree ./ Het probleem negeren –Zoals ColinR hierboven al zei, zou deze regel in de eerste plaats geen probleem moeten veroorzaken. Er is een echt probleem met ExecJS dat correct werkt met de JavaScript-runtime op uw systeem en het verwijderen van deze regel negeert dat feit gewoon.

2) Node.js installeren / Weglopen –Veel mensen lijken uiteindelijk Node.js te installeren en dat te gebruiken in plaats van de JavaScript-runtime die al op hun systeem aanwezig is. Hoewel dat een geldige optie is, vereist het ook extra software en vermijdt het alleen het oorspronkelijke probleem, namelijk dat ExecJS niet goed werkt met de JavaScript-runtime die al op uw systeem staat. Als de bestaande JavaScript-runtime op uw systeem zou moeten werken, waarom zou u het dan niet laten werken in plaats van meer software te installeren? Volgens de maker van ExecJS wordt de runtime die al in Windows is ingebouwd in feite ondersteund…

ExecJS laat je JavaScript-code uitvoeren vanuit Ruby. Het kiest automatisch de beste beschikbare runtime om uw JavaScript-programma te evalueren en stuurt het resultaat vervolgens naar u terug als een Ruby-object.

ExecJS ondersteunt deze runtimes:

  • therubyracer – Google V8 ingebed in Ruby
  • therubyrhino – Mozilla Rhino ingebed in JRuby
  • Node.js
  • Apple JavaScriptCore – Inbegrepen bij Mac OS X
  • Microsoft Windows Script Host (JScript)

(van github.com/sstephenson/execjs#execjs )

3) Eigenlijk vaststellen van het probleem / het leren – Gebruik de kennis van opties 1 en 2 om naar andere oplossingen te zoeken. Ik kan je niet vertellen hoeveel webpagina’s die ik heb gesloten bij het zien van opties 1 of 2 de geaccepteerde oplossing was voordat we daadwerkelijk informatie vinden over het root-probleem dat we hadden. De enige reden waarom we op zoek bleven, was dat we niet konden geloven dat het rails-team (1) een regel van code ins in te voegen in elk het gegenereerde project van de steiger dat een probleem heeft veroorzaakt, of (2) vereisen dat we extra software installeren om die standaard extra software te installeren regel van code. En dus kwamen we uiteindelijk bij een oplossing voor ons root-probleem (uw mijlen kunnen variëren).

de oplossing die voor ons werkte:
Zoek op het systeem met problemen, vind het runtimes.rb bestand. Het ziet eruit als dit . Maak een kopie van het gevonden bestand voor back-up. Open de originele runtimes.rb voor bewerking. Zoek de sectie die begint met de lijn JScript = ExternalRuntime.new(. In dat gedeelte, op de lijn met :command => "cscript //E:jscript //Nologo //U",– Verwijder de //Ualleen. Dan op de lijn met :encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE– UTF-16LE wijzigen op UTF-8. Sla de wijzigingen in het bestand op. Dit gedeelte van het bestand moet nu lezen:

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
)

Stop vervolgens Stop en start uw railserver opnieuw en vernieuw de pagina in uw browser die de oorspronkelijke fout heeft gemaakt. Hopelijk laadt de pagina nu zonder fout. Hier is de Execjs Probleem-thread waar we oorspronkelijk onze resultaten hebben gepost: https://github.com / SSTEPHENSON / execse / exemplaren / 81 # ISSUECOMMENT-9892952

Als dit het probleem niet heeft opgelost, kunt u de gewijzigde runtimes.rb altijd overschrijven met de back-up die u (hopelijk) is gemaakt en alles komt terug naar vierkant. Overweeg in dat geval optie 3 en blijf bij het zoeken. Laten we weten wat je uiteindelijk voor je werkt. Tenzij het de vereiste_tree verwijdert of Node.js installeert, is er tal van dat al rondgaat. 🙂


2, Autoriteit 6%

had hetzelfde probleem
OS- Windows 8
Fout- ‘Execjs :: RuntimeError …’
Oplossing- Missing Node.js

  1. Install Node.js from http://www.nodej.org/download/
  2. Start de computer opnieuw

3, Autoriteit 5%

Ik had dit probleem en was opgerekend op het internet. Ik gebruik Windows 8 met dit rails Gem-bestand

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

Ging naar http://nodjs.org/download/ geïnstalleerd – Start de machine opnieuw op en alles werkte.


4, Autoriteit 2%

Ik moest mijn Nodejs-map toevoegen aan mijn Windows Path Environment-variabele. In Windows 8 Open het bedieningspaneel, ga naar System, Advanced System-instellingen (aan de linkerkant), klik op Milieuvariabelen aan de linkerkant en bewerk het padvariabele om de map op te nemen in uw Nodejs-map (waarschijnlijk in programmabestanden).

Natuurlijk moet je Node.js hebben geïnstalleerd (gebruik de Windows Installer ) en heb Coffeescript geïnstalleerd NPM.


5, Autoriteit 2%

Ik weet dat dit een heel late antwoord is voor dit probleem, maar ik kwam op iets vergelijkbaar en ging het volledige pad af om te begrijpen wat echt het probleem veroorzaakte.

bleek dat de standaard Windows Jscript-engine nog steeds op ES3 staat en veel edelstenen profiteren van ES5- of ES6-functies.
Helaas als dit gebeurt (u gebruikt een juweeltje of een stuk code die gebruik maakt van de ES5- of ES6-functies), is er geen manier om het te laten werken op Windows met de Native JS-motor.

Dit is de reden waarom het installeren van Node.Js het probleem oplost (knooppunt is ten minste ES5).

Ik hoop dat dit een aantal mensen kan helpen die worstelen met een runtime-fout van JSEXEC.

My 2 Cents Advies is om knooppunt (heel eenvoudig) te installeren of V8 te installeren, en het verwijderen van de // = vereiste_tree niet.

Opmerking Execjs gebruiken automatisch knooppunt indien gedetecteerd. Anders dwingen het gebruik ervan, toevoegt in boot zoiets als:

ENV['EXECJS_RUNTIME'] = 'Node'

om de env in het knooppunt in te stellen.


6, Autoriteit 2%

Voor Windows-gebruikers kan dit werken. Er is een probleem met Coffee-Script-Source & GT; 1.9.0 die op Windows wordt uitgevoerd.

Het lijkt erop dat je dit aan je gemfile moet toevoegen:

Gem ‘Coffee-Script-Source’, ‘1.8.0’

Doe dan

Bundel bijwerken koffie-script-source

Ik heb alle bovenstaande opties geprobeerd en gemenkt ook een paar combinaties van hen, totdat ik dit Rails-4, Execa’s :: PROGRAMERError in pagina’s # welkom en had meerdere SYSTEEM GEM-updates en bundel installeert en updates.

Ik heb al mijn proeven teruggekeerd en mijn koffie-script-bron geduurd en het werkt. Posten hier om iemand anders te helpen, die mogelijk een soortgelijk probleem heeft.

Bestanden bijwerken in Verkoper / Cache

Coffee-script-source-1.8.0.gem het verwijderen van verouderde .Gembestanden van leverancier / cache
Coffee-Script-Source-1.9.1.1.Gem Bundel bijgewerkt!


7

Voor beginners zoals ik:

  1. Navigeer naar \ app \ bekeken \ layouts \ applicatie.html.erb
  2. Regel 6 van:

    ‘& lt;% = javascript_include_tag’ applicatie ‘,’ Data-turbolinks-track ‘= & GT; TRUE% & GT;

Naar

<%= javascript_include_tag 'defaults', 'data-turbolinks-track' => true %>

Bron van tutorial to fix Hier


8

Snelle en vuile oplossing: Verwijder //= require_tree .van application.js.

Zoals ik uitleg in de opmerkingen bij de vraag, lost dit niet het onderliggende probleem op dat de fout veroorzaakt, maar omzeilt het het alleen.


Antwoord 9

Ik heb oplossing nummer 2 gebruikt omdat ik deze fout eerder had, maar in deze situatie niet werkte, toen heb ik de

toegevoegd

gem 'coffee-script-source', '1.8.0'

en voer

uit

bundle install

en mijn probleem is opgelost


Antwoord 10

Hier is een minder gecompliceerde oplossing voor beginners:

Als je net de tutorial aan het doornemen bent, werk je waarschijnlijk met de standaard Gemfile (of bijna). U kunt het openen in uw teksteditor en het hekje vooraan deze regel verwijderen:

# gem 'therubyracer', :platforms => :ruby

Je moet de bundle installopnieuw uitvoeren, wat waarschijnlijk een aantal dingen zal downloaden. Maar zodra dit het geval is, zou u de server zonder enig probleem moeten kunnen starten.

Tenminste, dat werkte voor mij.

Dit werkt trouwens ook op Ubuntu 12.04.


Antwoord 11

Win 8 64 bit draaien
rails 4.2.5
robijn 2.1.7

Deze werkte voor mij


Antwoord 12

Heb je de locatie van je code gewijzigd van C:\Users\this-user\yo-app?

Toen ik jong was, heb ik een app gemaakt en de standaardlocatie van mijn app was C:\Users\Duncan\my-appen toen ik mijn app veranderde en plaatste het in D:\All-my-Apps-folder ik had die fout….

Ik krabde op mijn hoofd, probeerde 1,2,3 en meer ….. niets! Tot ik alle code terugbracht naar de standaardmaplocatie en tot mijn verbazing, was ik weer aan het rollen 🙂

In het geval dat iemand dit nuttig vindt (ik kan niet uitleggen waarom dat gebeurde, misschien iemand zonder speculatie)

Other episodes