generator-jm-vuejs
Generator for generating VueJS applications.
General
It is important to note that this generator is heavily opinionated. It is intended to be used as a starting point for bigger Vue SPA projects.
Installation
First, install Yeoman and generator-jm-vuejs using npm (we assume you have pre-installed node.js).
npm install -g yo
npm install -g generator-jm-vuejs
Then generate your new project:
yo @jshmrtn/jm-vuejs
Yeoman
Feel free to learn more about Yeoman.
Vue Application
This generator will help you bootstrap a vue application pretty quickly. You will have a few choices for the core boilerplate. These choices will let you decide on which additional features (besides the ones in the Vue core) you would like to use. In the following section you'll get a short summary of the functionality and the libs we use to enhance our applications.
yo @jshmrtn/jm-vuejs:app
Core Features
The following core features are built into the generators root boilerplate.
Dependency Injection
This can be used to ease working with dependencies the right way. Also, this makes testing components much easier.
##### Libs
* [vue-inject](https://www.npmjs.com/package/vue-inject)
##### Docs / Articles
* [vue-inject Docs](https://github.com/jpex-js/vue-inject/blob/master/README.md)
Error Tracking
Error tracking with raven-js will allow you to catch most uncatched errors in a production grade frontend application.
##### Libs
* [raven-js](https://www.npmjs.com/package/raven-js)
* [raven-js/plugins/vue](https://github.com/getsentry/raven-js/blob/master/plugins/vue.js)
##### Docs / Articles
* [raven-js with Vue](https://github.com/getsentry/raven-js/blob/master/docs/integrations/vue.rst)
GraphQL Client
If you intend to connect your Vue application to a GraphQL backend the apollo client and vue-apollo do a great job.
##### Libs
* [apollo-client](https://www.npmjs.com/package/apollo-client)
* [vue-apollo](https://www.npmjs.com/package/vue-apollo)
##### Docs / Articles
* [vue-apollo Docs](https://github.com/Akryum/vue-apollo)
* [vue-apollo example app](https://github.com/Akryum/vue-apollo-example)
* ["Use Apollo in your VueJS app" - 27.09.2016](https://dev-blog.apollodata.com/use-apollo-in-your-vuejs-app-89812429d8b2)
HTTP Client
For communicating with regular (and not so regular) REST APIs vue-resource is a great tool.
##### Libs
* [vue-resource](https://www.npmjs.com/package/vue-resource)
##### Docs / Articles
* [vue-resource Docs](https://github.com/pagekit/vue-resource)
Routing
All routing needs can be fulfilled with vue-router. This is especially true because it is developed by the core team in "feature parity" together with Vue itself.
##### Libs
* [vue-router](https://www.npmjs.com/package/vue-router)
##### Docs / Articles
* [vue-router Docs](https://router.vuejs.org/en/)
State
Handling the state will quickly become a vital part of your Vue application if you intend to scale it. Vuex is (like the vue-router) developed by the core team.
##### Libs
* [vuex](https://www.npmjs.com/package/vuex)
##### Docs / Articles
* [vuex Docs](https://vuex.vuejs.org/en/)
Translations / i18n
If you consider a lightweight i18n implementation in your applications to be a "basic feature", vue-i18n can be used without hassle.
##### Libs
* [vue-i18n](https://www.npmjs.com/package/vue-i18n)
##### Docs / Articles
* [vue-i18n Docs](https://kazupon.github.io/vue-i18n/)
Vue Component
This generator will help you bootstrap a vue component pretty quickly.
yo @jshmrtn/jm-vuejs:component
License
MIT © JOSHMARTIN GmbH