Как связать гемы при компиляции через Opal CLI - PullRequest
0 голосов
/ 13 марта 2020

Здравствуйте, я пытаюсь скомпилировать ruby код в js, чтобы вставить его на сайт

require 'opal'
require 'opal-jquery'
require 'opal-async'

def alert(msg)
  `alert(msg)`
end

$$[:document][:title] = "change somethings"
element = $$[:document].querySelector('current_temp')

element[:innerText] = "another kind of text"

Interval.new 3000 do

  HTTP.get("/testapi.json") do |response|

    json_answer = JSON.parse(response.body)

    element[:innerText] = json_answer['temp1']
  end

  alert "hello interval !"
end

Опал не может скомпилировать его и выдает ошибку:

/home/xion/.gem/ruby/2.7.0/gems/opal-1.0.3/lib/opal/builder.rb:182:in `read': A file required by "app.js.rb" wasn't found. (Opal::Builder::MissingRequire)
can't find file: "opal-jquery" in:

Но я установил 'opal- jquery' gem (через установку gem). Другая проблема заключается в том, что если я положу 'require' opal-asyn c 'на первый, он выдаст тот же

/home/xion/.gem/ruby/2.7.0/gems/opal-1.0.3/lib/opal/builder.rb:182:in `read': A file required by "app.js.rb" wasn't found. (Opal::Builder::MissingRequire)
can't find file: "opal-async" in:

Но я не смог установить opal-asyn c через' gem установить». я уже делал это с помощью bundler через github link.

Я хорошо работал с этим кодом, когда использовал звездочки, стойку и упаковщик, но теперь мне нужно просто скомпилировать с cli, чтобы получить один *. js файл на выходе. (Пример Gemfile, когда я использовал стойку со звездочками ...)

source 'https://rubygems.org'

gem 'opal'
gem 'opal-sprockets'
gem 'opal-jquery'
gem 'puma'
gem 'sinatra'
gem 'sinatra-flash'
gem 'encrypted_cookie'
gem 'opal-jquery'
gem 'opal-async', github: "ravenstine/opal-async"

Я тестировал на Arch Linux (ruby 2.7) и Xubuntu (ruby 2.5), которые выдают одинаковую ошибку.

Так, как я могу использовать драгоценные камни, такие как opal- jquery и opal-asyn c при компиляции через CLI. THx!

...