0

我尝试升级以使用 Opal 0.7.0.beta。我想编译为静态应用程序并按照http://opalrb.org/docs/static_applications/中的步骤操作

我的 Rakefile 如下所示。问题:

  1. 我如何需要返工 :build 任务以摆脱弃用消息。我试过了。使用 Opal::Server 而不是 Opal::Environment 但它不起作用。

  2. 我得到`蛋白石已经加载。加载两次可能会导致问题,请修复您的设置。``

  3. 我进入undefined is not a function生成的 javascriptOpal.mark_as_loaded(Opal.normalize_loadable_path("corelib/runtime"));

感谢 Opal 并感谢您的任何建议。

# Rakefile
require 'opal'
require 'opal/sprockets/environment'
require 'opal-jquery'
require 'erb'
require 'zip'


ZUPFNOTER_JS = "../deploy_files/build.js"


desc "Build our app to #{ZUPFNOTER_JS}"
task :build do
  env = Opal::Environment.new
  env.append_path "."
  env.use_gem "vector2d"

  File.open(ZUPFNOTER_JS, "w+") do |out|
    out << env["application"].to_s
  end

  Dir.glob "../public/*.scss" do |f|
    cmd = "sass #{f} > #{File.dirname(f)}/#{File.basename(f, ".scss")}.css"
    puts sh cmd
  end
end

...

4

2 回答 2

2

像下面这样的东西应该可以工作:

require 'opal'
task :build do
  env = Sprockets::Environment.new
  Opal.append_path '.'
  Opal.use_gem 'vector2d'
  Opal.paths.each { |p| env.append_path(p) }

  File.open(ZUPFNOTER_JS, 'w+') { |out| out << env['application.js'].to_s }

  # …
end

我还建议使用相同的 sprockets 环境来构建 SCSS,因为它应该开箱即用(也许require "sass"也需要 a)。

于 2015-02-09T09:07:41.063 回答
0

问题#2:足够了 require opal;无需opal.min.js在 HTML 页面中加载。

问题 #3:加载opal.min.js的是 0.6.1

于 2015-02-10T15:39:19.523 回答