【问题标题】:How do I fix Rails RuntimeError Current ExectJ doesn't support ES5?如何修复 Rails RuntimeError 当前 ExectJ 不支持 ES5?
【发布时间】:2019-04-18 22:45:28
【问题描述】:

当我在课程结束时更新页面“localhost:3000”时,我得到了我所附图像中发生的情况。如果我卸载“node.js”,则“localhost:3000”不再起作用,即它给我这个错误“我们很抱歉,但出了点问题。如果您是应用程序所有者,请检查日志以获取更多信息。 "为什么?

【问题讨论】:

  • “卸载 node.js”是什么意思?你真的在你的系统中安装了 node.js 吗?如果你输入node -v,你会在终端中得到什么?
  • 是的,我在我的电脑上安装了 Node.js。当我使用 node -v 时,它会熄灭: $ node -v v11.1.0
  • 帮助我@lacostenycoder
  • 首先尝试运行gem install execjs 包含您的Gemfile 代码并将以下输出添加到您的问题中。来自终端类型gem env。我假设你跑了bundle install?另见github.com/rails/execjs#readme。你能在 Github repo 上展示你所有的项目代码吗?
  • @lacostenycoder 这是我在 Github (github.com/NeoXinco/LacerMarket) 上的项目。这是终端的图片(imgur.com/a/OsC2utd),

标签: html ruby-on-rails node.js ruby rubygems


【解决方案1】:

主要问题出在您的 Gemfile 中

gem 'therubyracer', platforms: :ruby
gem 'mini_racer', platforms: :ruby

你有两颗赛车型宝石,你只需要一颗。

您应该只使用gem 'mini_racer' 并摆脱therubyracer。这样做并运行bundle install。您还需要清理 routes.rb 文件中留下的合并冲突内容。在bundle install 之前这样做,你应该会很好。

在您拥有更发达和稳定的堆栈之前,您可能也不需要锁定您的 gem 版本。您最好尽早升级所有内容,因为您的某些版本已经过时。要升级您的 gem,只需删除每个 gem 行之后的所有版本内容,即

gem 'coffee-rails', '~> 4.2' 

只能是

gem 'coffee-rails'

全部删除后,运行

bundle update

这是一个patchfile,它会在您遇到问题时执行这些操作。您可以将其保存在本地,然后根据需要运行git apply fix_gem_dependancies.patch

更新最后一个:这是我做的最后一件事。摆脱不需要的宝石,只需使用此 Gemfile

source 'https://rubygems.org'

gem 'rails', '~> 5.1.3'
gem 'sqlite3'
gem 'puma', '~> 3.7'
gem 'sass-rails'
gem 'uglifier'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder'
gem 'sdoc'

gem 'autoprefixer-rails'

gem 'execjs'

gem 'materialize-sass'


group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'capybara', '~> 2.13'
  gem 'selenium-webdriver'
end

group :development do
  gem 'web-console', '>= 3.3.0'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

我发给你的补丁应该已经修复了路由,但你显然不知道你在用 git 做什么。所以这是你的 routes.rb 文件

Rails.application.routes.draw do

  root 'pages#home'

  get 'about' => 'pages#about'

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

【讨论】:

  • 我安装了补丁,它给了我这个错误(imgur.com/a/dhp0tSK),为什么?
  • "你应该只使用 gem 'mini_racer' 并摆脱 therubyracer。这样做并运行 bundle install。你还需要清理你的 routes.rb 文件中留下的合并冲突内容。这样做在捆绑安装之前,你应该很好。”你是怎么做到的?
  • 依赖项 mini_racer (>= 0) 将不会被 Bundler 安装的任何平台使用。为什么? @lacostenycoder
  • 现在 rails 服务器不工作了。为什么? (imgur.com/a/b7UGCUE) 你不能直接从 GitHub 修复文件吗?现在这个 (imgur.com/a/6JQvTWl),为什么?
  • 有很多基本的东西你不明白,你真的需要参加一些课程来学习你想要做什么。 Rails 不适合初学者。您需要设置您的开发环境并使用 ruby​​ 版本管理器,我建议使用 RVM rvm.io/rvm/install 并且您需要学习如何使用 git。 git-tower.com/learn
猜你喜欢
  • 2022-08-22
  • 2022-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
  • 2021-10-06
  • 2021-12-24
相关资源
最近更新 更多