The Enhanced Ember Application Blueprint
MIT License
The Enhanced Ember Application Blueprint
Ember-CLI-Opitionated (ECO) provides an answer to several common decisions you face during development by bringing the best community addons under a single package. If you've ever asked yourself any of the following questions, ECO has you covered:
...and more!
All you have to do is sit back, relax, and let ECO do the hard work. When it's done, you'll have the most badass skeleton app around; it'll be a lean, mean, code-generating machine! Watch your productivity increase and your architecture meetings decrease, all at the same time.
Note: This addon works best with the master branch of Ember CLI (as of 1.13.8), thanks to the enhancements of this Pull Request. ECO has a fallback to work with older versions (pre-2.0), but it is less reliable than the newer methods.
The following command will install this addon and run the included blueprint to give you maximum awesomeness:
ember install ember-cli-opinionated
Subsequent updates to this addon can be pulled in by updating the version of this package and running the following:
ember g ember-cli-opinionated
This will execute the included blueprint, setting up your app for the win! If you want to enhance your app configuration with some additional awesomeness, simply say yes to the first question to fill out a short questionnaire that will allow us to improve your app even more.
Once you have installed this package, you may need to go through some minor setup to begin utilizing the included addons. For most addons, however, you should be able to reap their benefits right away. Please refer to the sections below and the individual READMEs for information on each addon's setup (where applicable).
ECO's blueprint relies on addAddonsToProject
, a
new feature to Ember CLI. For older Ember CLI versions (<=1.13.8),
a polyfill has been provided by chaining addAddonToProject
within the blueprint. However, there are some slight problems with
how that works, and some packages may not be properly saved to your package.json
and bower.json
.
Feel free to use this addon regardless, but check to make sure the dependencies are saved.
Each of the included addons has its own compatibility with different versions of Ember, Ember CLI, and so on. We recommend checking the individual repositories for more information to make sure your app is compatible with the latest versions of each project. The intent of this addon is to enhance a brand-new app generated with Ember CLI, but that doesn't mean you can't juice up your existing application, either!
At this time, Ember 1.13+ should be supported by all included addons. Earlier versions of Ember may also be supported, but they have not been explicitly tested. If you are on 1.12-, please test and let us know if there are issues.
Note: A bug in Ember CLI causes npm to attempt
installing ember-cli-sass
multiple times. This will throw a large number of concerning-looking errors to your console
but should not cause any real problems with installation.
Below you will find described the various addons packed into ECO.
Each addon is listed with a short description, a link to the main repositories, a setup rating and any additional dependency the addon might install. Optional dependencies that are included by our Enhanced Setup will be labeled as Enhanced with the name of their associated config.
Some of these additional projects may be WIP, alpha, or otherwise experimental. You should be able to use them for developing new applications, as long as you are aware of this fact.
Our rating system for additional setup needed to use an addon is as follows:
No Setup - You can begin using this addon immediately without any additional configuration necessary.
Trivial Setup - You may have to add 1-2 easy lines of code to complete setup.
Minor Setup - A bit of configuration is required (usually in config/environment.js
), but the process is
straightforward and explained in its README.
Major Setup - A significant amount of work is needed to use this addon. Our goal is not to include any projects that would receive this rating, as it is counter-intuitive to the quick-start nature of this project.
Runs the styles of your Ember CLI application through autoprefixer
.
No Setup
Additional Install: N/A
Wraps Blanket.js to provide code coverage for Ember apps. Easy integration with
ember-cli-pretender
or ember-cli-mirage
.
The README has details on configuration of the addon.
Minor Setup
Additional Install: blanket
Enhanced: Testing
Client-side server for mocking API calls for testing & development. The project's documentation has thorough instructions on setting up the mock server.
Minor Setup
Additional Install: Faker, lodash, & pretender
Enhanced: Pods
Enables usage of SCSS styles in pod directories. Also includes generators for these files!
Trivial Setup
Additional Install: ember-cli-sass
Provides Computed Property Macros, including Composable Macros!
No Setup
Additional Install: N/A
Enhanced: Analytics
An Ember-first data visualization library that combines d3-like math with Ember's "data down/actions up" data binding paradigm. Supports rendering to both Canvas and SVG!
No Setup
Additional Install: N/A
Note: This is a beta product that is still a WIP, with many more features on the way. Additionally, it only supports Ember 1.13+, sorry!
Provides an injected features
property to your routes, controllers, and components.
The README details the easy ENV config.
Minor Setup
Additional Install: N/A
Enhanced: Mobile-Friendly
Provides gesture and mobile support for Ember applications.
Trivial Setup
Additional Install: hammer.js
& hammer-time
Note: ember-gestures
relies on the yet-to-be-released 2.1.x version of hammer.js
. In order for this package to work
properly, you must install the latest develop
branch from their repository:
bower install --save runspired/hammer.js#develop
Allows you to send data to multiple analytics integrations without re-implementing new API. Check out the README for information on how to set up the instrumentation to your favorite analytics reporting tool.
Minor Setup
Additional Install: N/A
Provides template helpers and computed property macros for date parsing, as well as
including moment.js
as an ES6 module import.
No Setup
Additional Install: ember-cli-moment-shim
,
moment
, & moment-timezone
Enhanced: Material Design
An Ember-first implementation of Google's Material Design spec. This is an ambitious project that does not yet fully support every part of the spec, but feel free to check out their demo to see how incredibly far they've gotten!
Trivial Setup
_Additional Install: ember-cli-sass
, hammerjs
& matchMedia
Uses responsive media queries to inject screen layout information throughout Ember applications. Needs Polyfill for compatibility with IE 8/9 or Opera Mini.
No Setup
Additional Install: N/A
Enhanced: Testing
Easy integration between sinon
and ember-qunit
.
No Setup
_Additional Install: ember-sinon
Enforce code styles using JSCS
. Defaults to the
DockYard JavaScript and
Ember Style Guides, but rules are configurable.
No Setup
Additional Install: N/A
HTMLBars template helpers for additional truth logic in if and unless statements. Highly recommended by the Ember Core team!
No Setup
Additional Install: N/A
Enhanced: Testing
Run tests against multiple bower dependencies, such as Ember or Ember-Data. Incredibly useful in maintaining an upgrade path for your application!
No Setup
Additional Install: N/A
Enhanced: Animations
Comprehensive animation support for ambitious Ember applications. Replace your outlets and other HTMLbars helpers
with the liquid-fire
versions to enable support for adding transitional animations throughout your application.
The interactive documentation provides detailed information on using this addon.
Minor Setup
Additional Install: N/A
CONTRIBUTING.md details how to contribute to this project.
git clone [email protected]:elwayman02/ember-cli-opinionated.git
cd ember-cli-opinionated
npm install
bower install
ember s
or ember server
npm test