Buildprocess for ember outside of rails context


#1

Hi Folks,

I’m just starting a project with emberjs as the frontend and play2 framework as the backend and I’m wondering how guys setup your build process.

With that i mean how do you set up your projects so that you have an automated build so that the emberjs files get compiled and copied to the (in my case) play2 application for them to get bundled inside the WAR-file?

Do you just keep the two projects seperate and have some build tool trigger the build tasks of the two projects?

How does your development cycle looks like?

thanks and regards


#2

I’d recommend you to have a look at http://iamstef.net/ember-app-kit/ It will help you with that and will also give you some solid foundations to start your project.


#3

Our backend is .NET so we use Visual Studio for developing the backend. We simply have a post build event in the Visual Studio that runs the grunt task to build our project.

When I am just working on the frontend I usually just use grunt watch but the post build event is nice for our nightly and release builds.

Currently we are just using a custom GruntFile but will likely migrate to ember-app-kit in the future.


#4

I second this recommendation. This setup will likely become the official way to build ember apps, and is even supported in Rails with ember-appkit-rails.


#5

You don’t necessarily need to keep them completely separate. EAK has it’s own folder structure, so you may want to isolate it a bit. Then you can have EAK’s grunt server proxy to your app when it’s running. This is how I build client code with Grunt for non-Ember apps in Rails. Does that make sense?


#6

We treat our backend (Jersey) and our frontend (Ember) as two separate applications, which each generate their own deployable artifact. We combine them together into a 3rd deployable artifact in a later build stage (using Jenkins).

Having them be separately deployable has given us lots of flexibility and has come in very handy, especially when we’re developing one piece and want to run it against the other. (ie. we deploy one and develop one)