ExecJ에서 JavaScript 실행 시간을 찾을 수 없습니다.
Mongoid / Gander Rails 3.1 템플릿을 사용하려고 하는데 ExecJ가 JavaScript 런타임에 접속할 수 없다는 오류가 계속 나타납니다.인스톨 되어 있지 않은 경우는 괜찮습니다만, Node.js, Mustang, Ruby Racer를 인스톨 해 보았습니다만, 아무것도 동작하지 않습니다.
JavaScript 런타임을 찾을 수 없습니다.사용 가능한 런타임 목록은 sstepenson/ExecJs(GitHub)를 참조하십시오.ExecJS::RuntimeUnavailable
).
이 작업을 수행하려면 어떻게 해야 합니까?
Ubuntu 사용자
Ubuntu 11.04를 사용하고 있는데 비슷한 문제가 있었습니다.Node.js 설치로 수정되었습니다.
Ubuntu 13.04 x 64 ub: 、다음만 실행하면 됩니다.
sudo apt-get install nodejs
이것으로 문제가 해결됩니다.
CentOS/RedHat 사용자
sudo yum install nodejs
ExecJ와 Ruby Racer를 gem 파일에 추가하여 실행하기만 하면 됩니다.bundle install
끝나고.
gem 'execjs'
gem 'therubyracer'
그 후에는 모든 것이 잘 될 것이다.
Gem 파일에 다음과 같이 적습니다.
gem 'execjs'
gem 'therubyracer'
그리고 나서 달려라
bundle install
저는 모든 것이 잘 작동합니다. :)
비슷한 문제가 있었습니다.Windows 에서는 Rails 3.1 앱이 정상적으로 동작했지만 Linux 에서는 OP와 같은 에러가 발생했습니다.두 플랫폼 모두에서 효과가 있었던 수정은 다음 사항을 추가하는 것이었습니다.Gemfile
:
gem 'therubyracer', :platforms => :ruby
비결은 을 아는 것이다:platforms => :ruby
"C Ruby (MRI)" 또는 "Rubinius"에서만 이 보석을 사용할 수 있지만 Windows에서는 사용할 수 없습니다.
기타 가능한 값:platforms
man 페이지에 설명되어 있습니다.
참고: Windows에는 내장된 JavaScript 엔진이 있습니다.execjs
찾을 수 있습니다.Linux 에서는, 인스톨 할 수 있는 몇개의 기능이 있습니다만, 빌트인은 없습니다. therubyracer
그 중 하나입니다.기타는 에 기재되어 있습니다.execjs
README.md 를 참조해 주세요.
내 Gemfile에 다음 Gem을 추가하면 문제가 해결되었습니다.
gem 'therubyracer'
다음으로 새로운 의존관계를 번들합니다.
$ bundle install
또 다른 방법은 당신이 가지고 있지 않은 것을 포함하고 있는 보석 그룹 없이 그냥 묶는 것이다.
다음 내용도 있습니다.
bundle install --without assets
Gemfile을 수정할 필요가 없습니다.물론 자산 체인 관련 작업은 하지 않습니다.일반적으로 이것은 비개발 환경에 적용됩니다.번들은 .bundle/config 파일의 "--without" 설정을 기억합니다.
보석 파일에 다음 보석 추가
gem 'therubyracer'
gem 'execjs'
실행하다
bundle install
완료했습니다:)
amazon Linux(AMI)의 경우:
sudo yum install nodejs npm --enablerepo=epel
동일한 오류가 발생했지만 실제 가동 환경이 아닌 스테이징 서버에서만 오류가 발생했습니다.nodejs가 두 환경 모두에 이미 설치되어 있습니다.
입력 방법:
which node
node 명령어는 실제 가동 환경에서는 /usr/bin/node이지만 스테이징에서는 /usr/local/bin/node에 있습니다.
스테이징 시 심볼링크를 작성한 후:
sudo ln -s /usr/local/bin/node /usr/bin/node
그 후 어플리케이션은 스테이징에서 동작했습니다.
긁어부스럼.
수정하기 위해 루비 레이서를 Gem 파일에 추가하곤 했습니다.하지만 Node.js는 효과가 있습니다!
RubyRacer는 메모리에 좋지 않으므로 사용하지 마십시오.여기에 제시된 바와 같이 Node.js를 설치하는 것이 좋습니다.
ExecJs 라이브러리에서 사용할 수 있는 다음 런타임 목록에는 Node.js의 사용도 기재되어 있습니다.
https://github.com/sstephenson/execjs
따라서 Node.js는 오버킬이 아니며 RubyRacer를 사용하는 것보다 훨씬 뛰어난 솔루션입니다.
참고로, 이것으로 문제가 해결되었습니다.패칭 문제입니다.http://forums.freebsd.org/showthread.php?t=35539
★★★★★★★★★★★★★★를 설치했습니다.node
이 문제는 Capistrano를 사용하여 배포할 때 발생했습니다.capistrano는 nvm을 인터랙티브하게 실행하므로 자동으로 로드하지 않았습니다.
이 nvm에 .~/.bashrc
표시됩니다.을 사용법
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
Ruby 1.9.3에서 rbenv를 사용하기 시작했을 때 이 문제가 발생하기 시작했습니다.여기서 시스템 루비는 1.8.7입니다.보석은 두 곳에 모두 설치되어 있지만 어떤 이유에서인지 레일 스크립트가 이를 감지하지 못했습니다.하지만 "execjs"와 "therubyracer"를 Gemfile에 추가하면 효과가 있었습니다.
당신의 보석 파일에서 이 행을 언코멘트합니다.
19 # 보석 '더바이레이서', 플랫폼 : : 개요
번들 설치 실행
당신은 일할 준비가 되었습니다.:)
Ubuntu 18.04, Ruby 2.6.*, Rails 5, RubyMine 2019.1.1을 사용하여 RubyMine에서 디버깅을 시도하다가 같은 문제가 발생하였습니다.
저는 '비동작', '비동작'을 했습니다.mini_racer
의 내 from의 Gemfile
뛰었습니다.bundle
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby
변경 내용:
# See https://github.com/rails/execjs#readme for more supported runtimes
gem 'mini_racer', platforms: :ruby
언급URL : https://stackoverflow.com/questions/6282307/execjs-and-could-not-find-a-javascript-runtime
'programing' 카테고리의 다른 글
Perm Gen은 실제로 무엇을 의미합니까? (0) | 2023.01.30 |
---|---|
HTML5/Canvas/JavaScript를 사용하여 브라우저 내 스크린샷 촬영 (0) | 2023.01.30 |
PHP의 문자열을 특정 문자 수에 가장 가까운 단어로 잘라내는 방법은 무엇입니까? (0) | 2023.01.30 |
query_cache_size와 query_cache_limit의 차이점은 무엇입니까? (0) | 2023.01.30 |
네이티브 Windows 응용 프로그램의 리소스에 텍스트 파일 삽입 (0) | 2023.01.30 |