This repository is an ember octane base that we use to start moonshot projects, it contains some addons and configurations that are indispensable for us when developing an app in Ember.js
- Linting with eslint, ember-template-lint, eslint-plugin-ember-suave
- Server side rendering with Fastboot
- Mirage is client-side server to help build application tests.
- ember-cli-page-object for make it easy to create page objects for your acceptance and integration tests.
- Manage environment variables with ember-cli-dotenv
- Manage CSP with ember-cli-content-security-policy
- For localization ember-intl
- Adding steroids to the templates with ember-truth-helpers, ember-compsable-helpers and ember-cli-string-helpers
If you want to install some other addon in particular to build a specific feature, authentication, form validations, etc, you can visit this page where we list our favorite addons by category.
As we mentioned above we have added some Linting addons, you can visit the pages of each one to learn a little more about their rules, however, we will list some essential ones here.
- Two-space indentation
- Line endings
Here you can also see the moonshot coding style guide where you will find more specific cases.
By default we have added a github workflow for continous integration.
Consists of three jobs, buildAndTests
, deploy-staging
, deploy-production
, they are configured to run on push
The deploys jobs will only be executed in case they match a specific branch, you can condition the specific branch here with which you want to execute the deploy here and here.
You will need the following things properly installed on your computer.
git clone <repository-url>
this repositorycd ember-boilerplate
yarn install
ember serve
- Visit your app at http://localhost:4200.
- Visit your tests at http://localhost:4200/tests.
Make use of the many generators for code, try ember help generate
for more details
ember test
ember test --server
yarn lint
yarn lint:fix
ember build
(development)ember build --environment production
(production)
Specify what it takes to deploy your app.