2014-11-14 70 views
7

我正在制作一个具有/admin路线的Rails引擎。我想用Ember CLI创建这个管理界面。Ember CLI应用程序在Rails引擎内

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

什么是一个很好的方法来做到这一点?理想情况下,我想让Ember CLI从回购协议中构建出来。

+1

已经解决了吗?我用它来开发作为独立项目的ember-cli应用程序,并在rails项目中使用ember-rails gem for ember应用程序。从Ember2.0开始,我想在我的主要导轨项目中引入ember-cli,但不会失去附加组件,凉亭,西兰花等的优点。 – Fabio 2015-01-24 12:46:21

+1

我编写了一个运行'ember build'的耙子任务, static'dist'放入'public/my-engine'中,并将这些公共静态资产与主机应用程序的'public'文件夹合并。所以,我还没有找到避免构建步骤的方法。 – 2015-01-24 14:47:05

回答

2

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

我写的运行ember build和移动静态distpublic/my-engine目录,并合并这些公共静态资产与主机应用程序的公用文件夹rake任务。

下面是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