Ember-cli: Motivation of changing build tool from grunt to broccoli


#1

Hi all,

I wanted to understand what the motivation was behind the ember-cli decision to move from grunt to broccoli.

As i understand, grunt is a task runner, while broccoli is a build tool.

But what are the implications of this distinction?

Is grunt slower, more cumbersome to configure?

As i see there is a great adoption of gruntjs in the community, so i am sure that there is a good reason why it happened?

Thanks,

David


#2

Take a look on broccoli release announcement article and you will find some answers.


#3

It’s because rebuilding things with grunt watch in EAK was too slow and prone to error. You should still use Grunt as a task runner though.


#4

For us the switch was mostly driven by constantly bumping into file descriptor limits and the faster SASS compiler (libsass is written in C instead of Ruby). Overall, we were able to shave 50-60% off our incremental build times.


#5

Weird. I am using ember-cli with broccoli and it takes about 15 seconds to build a basic app compared to less than 2 with grunt…


#6

Are you on Windows? The way indexing works on Windows screws with Broccoli, and is a known issue. Even on pretty enterprisey stuff, I usually don’t see a build time over 400ms, and over half of that is usually SASS.


#7

@ccarterc I’d be interested in seeing the output of your build. It should show whole the culprit(s) is/are.

For our largest app, our build times went form literally 60 seconds to 2-5seconds (depending on what has changed).

Prior to ember-cli, the story for sharing components was a complex one and something very few attempted. Now head on over to emberaddons.com and you can see the door it has opened :smile:


#8

Indexing is turned off for the entire repo. I literally have one route, one controller, one template. It’s a brand new app and I just started. Build times are 15-30 seconds. Slowest trees shows about 3 seconds for es6 modules. @jasonmit @kylecoberly


#9

Oh yeah and builds are triggered sometimes several times after making only one change to a file. Very annoying. Grunt worked out of the box. Broccoli is broken out of the box. Seems like a bad move to gain adoption.


#10

@ccarterc ember-cli 0.1.5? Are you using any additional addons?


#11

No addons, but I just found the snippet about opening the command console as admin… Crazy difference. Now under 4 seconds.