A ionic boilerplate for starting new projects. This boilerplate will follow the best practices for angular and ionic development.
NOTE: I moved Unit tests from running through Rollup to Webpack with release 0.10.0. If you are looking to the old configuration see the rollup branch.
# Required dependecies (on Mac Os also install ios-sim and ios-deploy)
npm i -g cordova ionic yarn
gem install scss_lint
# Clone the repo --depth 1 removes all but one .git commit history
git clone --depth 1 https://github.com/marcoturi/ionic2-boilerplate.git
# Change directory
cd ionic2-boilerplate
# Install project dependencies
yarn --ignore-engines
npm run post-install
# Launch ionic serve
npm run dev
TO RUN IONIC: Make sure you have Node version >= 6.X and NPM >= 3
TO RUN SCSS-LINT: Make sure you have Ruby >= 2
Task | Description |
---|---|
dev |
Run ionic serve |
build |
Full production build. Use --dev flag for dev build. |
release |
Generate changelog based on commits |
push |
Shortcut for git push origin master --follow-tags |
lint |
Lint with tslint |
scss-lint |
Lint scss |
test |
Runs Karma test |
test:watch |
Runs Karma test watching for edits (TDD style) |
e2e |
Runs e2e protractor tests |
e2e:interactive |
Runs e2e protractor tests in interactive mode |
docs |
Generate code documentation through Typedoc |
outdated |
Search npm packages for outdated dependencies |
post-install |
Update web-driver to be able to run e2e tests. |
ios:dev |
Build .ipa using dev environment vars |
ios:release |
Build .ipa with production environment vars |
android:dev |
Build .apk using dev environment vars |
android:release |
Build .apk with production environment vars |
Lines\s*:\s*(\d*\.?\d+)%
in Gitlab CI/CD pipelines.Key | Description |
---|---|
IONIC_EMAIL |
Your ionic.io email |
IONIC_PASSWORD |
Your ionic.io password |
IONIC_PACKAGE_BUILD_RELEASE |
(Optional) Indicate whether this is a release build. Possible values are true or false . Defaults to false . |
IONIC_PACKAGE_BUILD_PROFILE |
Security profile to use for the build, as defined in Ionic.io console. |
If you want everything to just work nicely with rollup, use es2015 libraries like lodash-es instead of lodash. In the case of lodash-es try to do: import map from 'lodash-es/map'
rather than import { map } from 'lodash-es'
. See here for further info. To find examples on how to import 3rd party libs with ionic and rollup see here and here
git add .
npm run commit // this will run tslint + scss lint + commit
npm run push // this will run unit tests + push to master
// now check on GITLAB if there are no errors, than if you want push your commits to the release branch to get automatic ipa and apk
Copyright (c) 2016 Marco Turi
Source code is open source and released under the MIT license.