ember-cli-opinionated

An opinionated blueprint for ambitious Ember apps

Usage no npm install needed!

<script type="module">
  import emberCliOpinionated from 'https://cdn.skypack.dev/ember-cli-opinionated';
</script>

README

Ember-CLI-Opinionated

Ember Observer Score Code Climate Codacy Badge Dependency Status

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:

  1. SCSS vs LESS vs CSS?
  2. How can we get code coverage?
  3. How do we put styles in our pods?
  4. How can we track performance and feature usage?
  5. What's the best way to do date parsing/formatting in Ember?
  6. How can we implement feature flags?
  7. When will Rick Rolling stop being a thing?

...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.

Installation

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).

Compatibility

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.

What's Inside The Box?

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.

ember-cli-autoprefixer

Runs the styles of your Ember CLI application through autoprefixer.

No Setup

Additional Install: N/A

ember-cli-blanket

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

ember-cli-mirage

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

ember-cli-sass-pods

Enhanced: Pods

Enables usage of SCSS styles in pod directories. Also includes generators for these files!

Trivial Setup

Additional Install: ember-cli-sass

ember-cpm

Provides Computed Property Macros, including Composable Macros!

No Setup

Additional Install: N/A

ember-e3

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!

ember-feature-flags

Provides an injected features property to your routes, controllers, and components. The README details the easy ENV config.

Minor Setup

Additional Install: N/A

ember-gestures

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

ember-metrics

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

ember-moment

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

ember-paper

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

ember-responsive

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

ember-sinon-qunit

Enhanced: Testing

Easy integration between sinon and ember-qunit.

No Setup

_Additional Install: ember-sinon

ember-suave

Enforce code styles using JSCS. Defaults to the DockYard JavaScript and Ember Style Guides, but rules are configurable.

No Setup

Additional Install: N/A

ember-truth-helpers

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

ember-try

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

liquid-fire

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

CONTRIBUTING.md details how to contribute to this project.

Installation

  • git clone git@github.com:elwayman02/ember-cli-opinionated.git
  • cd ember-cli-opinionated
  • npm install
  • bower install

Running

  • ember s or ember server
  • Visit your app at http://localhost:4200.

Running Tests

  • npm test