我正在创建一个具有/admin
路由的Rails引擎。我想用Ember CLI创建这个管理界面。
我知道rails会自动预编译我的引擎lib
目录中存在的任何静态JS / CSS,并且仅在父应用程序挂载我的引擎并访问该路由时才加载它们。但是,我想使用Ember CLI来构建管理界面。
这样做的好方法是什么?理想情况下,我希望将Ember CLI版本保留在回购中。
答案 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