Rails - ไม่พบรันไทม์ JavaScript ใช่ไหม


247

ฉันสร้างโครงการ Rails ใหม่โดยใช้rails 3.1.0.rc4บนเครื่องของฉัน แต่เมื่อฉันพยายามเริ่มต้นเซิร์ฟเวอร์ฉันจะได้รับ: ไม่พบ JavaScript runtime ดูที่นี่สำหรับรายการของ runtimes ที่มีอยู่ ( ExecJS::RuntimeUnavailable)

หมายเหตุ: นี่ไม่เกี่ยวกับ Heroku


1
ทำซ้ำExecJS ที่
Lucio

คำตอบ:


475

การติดตั้งไลบรารีรันไทม์ javascript เช่น nodejs แก้ไขปัญหานี้

หากต้องการติดตั้ง nodejs บน ubuntu คุณสามารถพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล:

sudo apt-get install nodejs

หากต้องการติดตั้ง nodejs บนระบบที่ใช้ yum ให้พิมพ์ดังต่อไปนี้ในเทอร์มินัล:

yum -y install nodejs

14
ให้ฉันด้วย. sudo apt-get install nodejs.
Hertzel Guinness

1
ตอนนี้ฉันแนะนำสิ่งนี้เป็นเส้นทางที่จะใช้ ดูด้านบน.
Michael Durrant

1
ลบบันทึกย่อในคำตอบเกี่ยวกับการติดตั้งโหนดผ่านทางศูนย์ซอฟต์แวร์ Ubuntu เนื่องจากไม่ได้อยู่ในนั้น (Ubuntu 12.04)
Michael Durrant

1
Ubuntu 64 กำลังให้ปัญหาอย่างใหญ่หลวงในการติดตั้ง therubyracer ไม่ใช่เวอร์ชันล่าสุด 0.11.1 แก้ไขได้ คำตอบนี้ช่วยฉันได้
Eduardo

@gwho มีคำตอบด้านล่างโดย Yang ลองดูที่
theTuxRacer

44

หมายเหตุจาก Michael 12/28/2011 - ฉันเปลี่ยนการยอมรับของฉันจาก (rubytheracer) เป็นด้านบน (nodejs) เนื่องจาก therubyracer มีปัญหาขนาดรหัส Heroku ตอนนี้ขอท้อมัน มันจะ 'ทำงาน' แต่อาจมีปัญหาเรื่องขนาด / ประสิทธิภาพ

หากคุณเพิ่มรันไทม์เช่น therubyracer ใน Gemfile ของคุณและรันบันเดิลจากนั้นลองและเริ่มต้นเซิร์ฟเวอร์มันควรจะทำงาน

gem 'therubyracer'

จำเป็นต้องใช้ runtime javascript สำหรับการรวบรวม coffeescript และสำหรับ uglifier

Update, 12/12/2011:บางคนพบปัญหากับ rubytheracer (ฉันคิดว่ามันเป็นขนาดรหัสส่วนใหญ่) พวกเขาพบว่า execjs (หรือ nodejs) ทำงานได้ดีเช่นกัน (ถ้าไม่ดีขึ้น) และเล็กกว่ามาก

nb Coffeescript กลายเป็นมาตรฐานสำหรับ 3.1+


3
นอกจากนี้ยังใช้สำหรับบีบอัด JavaScript ด้วย UglifyJS โปรดทราบว่าวิธีที่แนะนำในการทำงานเหล่านี้คือการพัฒนาrake assets:precompileและเพิ่มสินทรัพย์ลงในที่เก็บของคุณ Rails 3.1 ไม่จำเป็นต้องใช้งาน JavaScript ในการผลิตจริงในขณะที่วางจำหน่าย
whitequark

1
ฉันทำเครื่องหมายคำตอบนี้เป็นคำตอบแล้ว มันค่อนข้างลำบากเพราะมันไม่สามารถแก้ไขได้ทันทีและฉันก็ลองใช้แอพใหม่ด้วย 3.0.9 และ 3.0.4 แต่มีข้อผิดพลาด (ต่างกัน) กับพวกเขา ในที่สุดฉันก็ทำแอพใหม่อีกครั้ง - และยังได้รับ rc5 ด้วยและเพิ่ม rubytheracer และทำการอัพเดท bunlde และในที่สุดฉันก็สามารถทำให้เซิร์ฟเวอร์ทำงานได้ ขอบคุณ Gazier!
Michael Durrant

1
btw แอปรางมาตรฐานที่สร้างขึ้นใช้ uglifier ซึ่งต้องใช้สิ่งนี้ฉันเชื่อ
Michael Durrant

1
ฉันคิดว่าวิธีปฏิบัติที่ดีสามารถนำไปวางใน gemfile ภายใต้กลุ่มการพัฒนาได้เช่น group :development do gem 'therubyracer' end
eveevans

@eveevans ไม่พบข้อผิดพลาดรันไทม์ สินทรัพย์ถูกรวบรวมในสภาพแวดล้อมการผลิตเพื่อให้ผู้บำบัดต้องอยู่ภายใต้บล็อกการผลิต env
lulalala

27

เพิ่มอัญมณีต่อไปนี้ในไฟล์อัญมณีของคุณ

gem 'therubyracer'
gem 'execjs'

และเรียกใช้

bundle install

หรือ

ติดตั้ง Node.jsเพื่อแก้ไขอย่างถาวรสำหรับทุกโครงการ


1
สิ่งนี้ใช้งานได้สำหรับฉัน (Linux Mint 16) ฉันคิดว่าใน Rails เวอร์ชันล่าสุดอาจพลาดการพึ่งพาบางอย่าง
geminiCoder

15

sudo apt-get install nodejsไม่ได้ผลสำหรับฉัน เพื่อให้มันใช้งานได้ฉันต้องทำสิ่งต่อไปนี้:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

หวังว่านี่จะช่วยคนที่มีปัญหาเช่นเดียวกับฉัน


doenst ทำงานสำหรับฉัน ppa เพิ่มพื้นที่เก็บข้อมูล: chris-lea / node.js
jpganz18

@ jpganz18 ลองทำสิ่งนี้ก่อน: sudo apt-get install software-properties-common หากวิธีนี้ไม่สามารถแก้ปัญหาได้คุณสามารถติดตั้งได้ด้วยตนเอง: blog.anantshri.info/howto-add-ppa-in-debian
Robin

6

บนแพลตฟอร์ม windows ฉันพบปัญหาเช่นกันโซลูชันสำหรับฉันก็แค่เพิ่ม

C:\Windows\System32

ไปที่ PATH

และรีสตาร์ทคอมพิวเตอร์


3

ฉันมีปัญหานี้กับเครื่อง Windows และการติดตั้ง node.js เป็นวิธีแก้ปัญหาที่ใช้งานได้ในที่สุด สิ่งนี้เกิดขึ้นหลังจากลองเส้นทางอื่น ๆหลายเส้นทางรวมถึงการพยายามทำให้ 'therubyracer' ทำงาน แม้ว่า github สำหรับ node.js แสดงให้เห็นว่าการติดตั้งบน windows ยังคงไม่เสถียรเว็บไซต์ที่http://nodejs.org/มีตัวติดตั้ง Windows ซึ่งทำงานได้อย่างสมบูรณ์



1

หากล้มเหลวทั้งหมดคุณสามารถลอง

# aptitude ติดตั้ง nodejs

ในฐานะที่เป็นราก คุณสามารถทดสอบการติดตั้งด้วยคำสั่งต่อไปนี้:

# node -v

หากคุณต้องการติดตั้ง NPM โปรดดูต่อไปนี้การเชื่อมโยง หวังว่ามันจะช่วย



0

ติดตั้งรันไทม์ Javascript

ข้อผิดพลาดเกิดจากการไม่มีจาวาสคริปต์รันไทม์บนเครื่องของคุณ ในการแก้ไขปัญหานี้คุณจะต้องติดตั้ง NodeJS

คุณสามารถติดตั้ง NodeJS ผ่าน Node Version Manager หรือnvm :

ก่อนติดตั้งnvm:

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

ติดตั้งโหนดผ่านnvm:

nvm install 5.9.1

สิ่งนี้จะติดตั้งเวอร์ชั่น5.9.1ของ Node


0

ฉันพบปัญหานี้โดยใช้ Phusion Passenger (ทำงานเป็นโมดูล nginx) บนเซิร์ฟเวอร์ Redhat เราได้ติดตั้งรันไทม์ Javascript แล้ว แอพ Rails อื่นในไดเรกทอรีหลักเดียวกันนั้นใช้งานได้ดี

ปรากฎว่าเรามีปัญหาสิทธิ์ เรียกใช้ "ls -l" และดูว่าโฟลเดอร์นั้นมีเจ้าของและกลุ่มเดียวกันกับแอปที่ใช้งานอื่น ๆ ในระบบหรือไม่ ฉันต้องเรียกใช้ chown และ chgrp ในโฟลเดอร์ (ด้วยสวิตช์แบบเรียกซ้ำ) เพื่อแก้ไข


0

ฉันหวังว่าคุณจะได้ติดตั้ง nodejs || ไว้ล่วงหน้า NMV

โซลูชันของฉันไม่ต้องการการตั้งค่า gem หรือติดตั้ง 'node ด้วยsudo apt"เมื่อคุณมี nvm แล้ว

สิ่งที่คุณต้องทำก็คือแก้ไข DesctopEntry of RubyMine เพราะเราจะมีขั้นตอนเล็ก ๆ เหล่านั้น:

  1. ไปที่ usr/share/applications
  2. เปิดในเครื่องมือแก้ไขใด ๆ (ฉันใช้เป็นกลุ่ม) Rubymine DesktopEntryvim RubyMine
  3. แก้ไขบรรทัดที่ 6 (เริ่มต้นด้วย Exec) คุณ shoud /bin/bash -i -cเพิ่มเริ่มต้น ดังนั้นสายของคุณควรมีลักษณะเช่นนี้ Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. ทำ! คุณรุ่งโรจน์!

ประโยชน์ของตัวแปรสภาพแวดล้อมทั้งหมดของคุณพร้อมใช้งานแล้วสำหรับ RubyMine ดังนั้นคุณจะไม่รู้สึกเจ็บปวดกับการเพิ่มเข้ามา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.