Как исправить ошибку Jekyll «Не удалось найти JavaScript runtime» - PullRequest
1 голос
/ 25 февраля 2020

Я сейчас пытаюсь загрузить Jekyll на страницы Gitlab, но по какой-то причине я продолжаю сталкиваться с одним и тем же сообщением об ошибке в конвейере:

 $ bundle exec jekyll build -d public
 Configuration file: /builds/mmellows1/mighty/_config.yml
 jekyll 3.8.6 | Error:  Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
 ERROR: Job failed: exit code 

Мой файл GEM выглядит так:

source "https://rubygems.org"

# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
    # bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 3.8.4"

# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.0"

# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins

# If you have any plugins, put them here!
group :jekyll_plugins do
  gem "jekyll-feed", "~> 0.6"
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]

# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.0" if Gem.win_platform?

gem 'jekyll-compose', group: [:jekyll_plugins]

gem 'jekyll-autoprefixer'

и мой файл gitlab-ci.yml выглядит так:

pages:
  image: ruby:2.3
  variables:
    JEKYLL_ENV: staging
    LC_ALL: C.UTF-8
  before_script:
    - bundle install
  stage: deploy
  script:
  - bundle exec jekyll build -d public
  artifacts:
    paths:
    - public
  only:
  - master

1 Ответ

1 голос
/ 25 февраля 2020

Существует ряд параметров, перечисленных в https://github.com/rails/execjs (как говорится в сообщении об ошибке). Вам нужно добавить гем в ваш Gemfile, который будет включать JavaScript время выполнения.

Я обычно использую therubyracer, добавьте его в свой Gemfile следующим образом:

gem "therubyracer"
...