# Switch build tool

**URL:** <https://discuss.emberjs.com/t/switch-build-tool/1324>\
**Category:** Proposals\
**Created:** [May 24, 2013, 10:27am UTC](https://discuss.emberjs.com/t/switch-build-tool/1324 "2013-05-24T10:27:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kelonye](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/kelonye/32/14534_2.png) [@kelonye](https://discuss.emberjs.com/u/kelonye)\
**Post date:** [May 24, 2013, 10:27am UTC](https://discuss.emberjs.com/t/switch-build-tool/1324/1 "2013-05-24T10:27:05Z")

</div>

Would be nice to split ember into a number of opt out components(repos) so that devs consume only what they need with [https://github.com/component/component/](https://github.com/component/component/).

The idea is, you’d only install and use the components you need as:

```auto
component install emberjs/ember-debug // fetches https://github.com/emberjs/ember-debug
component install emberjs/ember-controls
component install emberjs/ember-metal
component install emberjs/ember-routing
component install emberjs/ember-states
component install emberjs/ember-views
...

```

Then build with

```auto
component build

```

Alternatively, the main component at [https://github.com/emberjs/ember](https://github.com/emberjs/ember) would include all those as:

```auto
// component.json
{
 "name": "ember",
 "version": "1.0.0",
 "dependencies": {
   "component/jquery": "*",
   "wycats/handlebars": "*",
   "emberjs/ember-debug": "*",
   "emberjs/ember-test": "*",
    ...
  }
}

```

Then a dev includes ember into his/her app as:

```auto
{
 "name": "app",
 "dependencies": {
   "emberjs/ember": "*"
  },
  "scripts": [
    "app.js"
  ]
}

//app.js
var Em = require('ember')
 , App = Em.Application.create();

```

Added advantage is, we won’t need custom build steps.

---

<div class="post-metadata">

**Author:** ![mszoernyi](https://avatars.discourse-cdn.com/v4/letter/m/ec9cab/32.png) [@mszoernyi](https://discuss.emberjs.com/u/mszoernyi)\
**Post date:** [May 24, 2013, 1:38pm UTC](https://discuss.emberjs.com/t/switch-build-tool/1324/2 "2013-05-24T13:38:48Z")

</div>

I’m trying to find the right way for components in ember.js as well. Currently I’m working on a couple of components for my apps which I would like to share. Most of them are basic stuff but I’m missing a general concept which system we should use.

Did our core team discuss this topic already and what are your thoughts? I’m not sure if [component.io](http://component.io) or [bower.io](http://bower.io/) is the right way.

It would be nice to have a place where we can search for all kind of components / extensions for ember. Especially for newcomers. Maybe something like [plugins.jquery.com](http://plugins.jquery.com)

Currently it’s really hard to find components and I would guess most ember devs out there wrote the same component instead of sharing und reusing them.

---

<div class="post-metadata">

**Author:** ![kelonye](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/kelonye/32/14534_2.png) [@kelonye](https://discuss.emberjs.com/u/kelonye)\
**Post date:** [May 24, 2013, 1:54pm UTC](https://discuss.emberjs.com/t/switch-build-tool/1324/3 "2013-05-24T13:54:36Z")

</div>

Yeah, I agree, there isn’t a central ember components listing. A github wiki page would do similar to [https://github.com/component/component/wiki/Components](https://github.com/component/component/wiki/Components). Anyway, you can search components with

```auto
component search ember

```
