我该如何迁移到蛋白石0.7.0.beta

时间:2014-12-30 09:32:04

标签: opalrb

我尝试升级到使用Opal 0.7.0.beta。我想编译成静态应用程序并按照http://opalrb.org/docs/static_applications/

中的步骤操作

我的Rakefile如下所示。问题:

  1. 如何修改:build任务以删除弃用消息。我试过了。使用Opal :: Server而不是Opal :: Environment但它没有用。

  2. 我得到了'蛋白石已加载。加载两次会导致麻烦,请修复您的设置.`

  3. 我在生成的javascript undefined is not a function

  4. 中获得了Opal.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
    
    ...
    

2 个答案:

答案 0 :(得分: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"。)

答案 1 :(得分:0)

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

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