Rails引擎中的Ember CLI应用程序

时间:2014-11-14 20:53:28

标签: ruby-on-rails ember.js ember-cli rails-engines

我正在创建一个具有/admin路由的Rails引擎。我想用Ember CLI创建这个管理界面。

我知道rails会自动预编译我的引擎lib目录中存在的任何静态JS / CSS,并且仅在父应用程序挂载我的引擎并访问该路由时才加载它们。但是,我想使用Ember CLI来构建管理界面。

这样做的好方法是什么?理想情况下,我希望将Ember CLI版本保留在回购中。

1 个答案:

答案 0 :(得分:2)

我的解决方案涉及在引擎中存储Ember CLI应用程序的构建。

我编写了一个运行ember build的rake任务,并将静态dist移动到public/my-engine目录中,并将这些公共静态资源与主机应用程序的公用文件夹合并。

以下是our particular project的任务:

namespace :admin do
  task :build do
    Dir.chdir('admin') do
      sh 'ember build  --environment=production'
    end

    # Copy the dist to public
    FileUtils.rm_r 'public/front_end_builds'
    FileUtils.mv 'admin/dist', 'public/front_end_builds'

    # Move the index out of public
    FileUtils.mv 'public/front_end_builds/index.html', 'app/views/front_end_builds/admin/index.html.erb'
  end
end