2014-11-14 8 views
7

Ich mache eine Rails-Engine, die eine /admin Route hat. Ich möchte diese Admin-Oberfläche mit Ember CLI erstellen.Ember CLI App in einem Rails-Engine

Ich weiß, Schienen werden automatisch alle statische JS/CSS vorkompilieren, die in meinem Motor lib dir leben, und nur laden, wenn die übergeordnete Anwendung meine Engine mounts und diese Route besucht. Ich möchte jedoch Ember CLI verwenden, um die Admin-Schnittstelle zu erstellen.

Was wäre ein guter Weg, dies zu tun? Idealerweise würde ich gern Ember CLI aus dem Repo aufbauen.

+1

diese gelöst haben? Ich verwende ember-cli-Anwendungen als eigenständige Projekte und nutze ember-rails gem für ember-apps in einem rails-Projekt. Ab Ember2.0 möchte ich ember-cli in mein Hauptschienenprojekt einführen, aber ohne die Vorteile von Add-ons, Bower, Broccoli etc. zu verlieren. – Fabio

+1

Ich habe eine Rake-Aufgabe geschrieben, die 'ember build' ausführt und die static 'dist' in' public/my-engine' und führt diese öffentlichen statischen Assets mit dem 'public'-Ordner der Host-App zusammen. Also habe ich keinen Weg gefunden, den Build-Schritt zu vermeiden. –

Antwort

2

Meine Lösung beinhaltete das Speichern eines Builds der Ember CLI App im Motor.

Ich schrieb eine Rake Aufgabe, die ember build läuft und bewegt die statischen dist in das public/my-engine Verzeichnis und verschmilzt diese öffentlichen statischen Vermögenswerte mit dem öffentlichen Ordner des Host-App.

Hier ist die Aufgabe für 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