├── .babelrc ├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .github └── FUNDING.yml ├── .gitignore ├── README.md ├── logo.png ├── logo.svg ├── package-lock.json ├── package.json ├── packages ├── npm-check │ ├── .versions │ ├── README.md │ ├── lib.js │ ├── npm-check.js │ └── package.js ├── vue-blaze-template │ ├── .versions │ ├── README.md │ ├── package.js │ └── vue-render-blaze.js ├── vue-coffee │ ├── .gitignore │ ├── .versions │ ├── README.md │ ├── package.js │ └── vue-coffee.js ├── vue-component-dev-client │ ├── .gitignore │ ├── .versions │ ├── README.md │ ├── client │ │ ├── buffer.js │ │ ├── dev-client.js │ │ ├── vue-hot.js │ │ └── vue2-hot.js │ └── package.js ├── vue-component-dev-server │ ├── .versions │ ├── README.md │ ├── package.js │ └── server │ │ └── main.js ├── vue-component │ ├── .gitignore │ ├── .versions │ ├── CHANGELOG.md │ ├── README.md │ ├── global_component_file_tree.png │ ├── package.js │ └── plugin │ │ ├── dev-server.js │ │ ├── plugin.js │ │ ├── post-css.js │ │ ├── regexps.js │ │ ├── tag-handler.js │ │ ├── utils.js │ │ └── vue-compiler.js ├── vue-less │ ├── .gitignore │ ├── .versions │ ├── README.md │ ├── package.js │ └── vue-less.js ├── vue-pug │ ├── .gitignore │ ├── .versions │ ├── README.md │ ├── package.js │ └── vue-pug.js ├── vue-router2 │ ├── .gitignore │ ├── .versions │ ├── CHANGELOG.md │ ├── README.md │ ├── client │ │ └── client.js │ ├── npm.json │ ├── package.js │ └── plugin │ │ └── plugin.js ├── vue-sass │ ├── .gitignore │ ├── .versions │ ├── README.md │ ├── package.js │ └── vue-sass.js ├── vue-ssr │ ├── .gitignore │ ├── .versions │ ├── CHANGELOG.md │ ├── README.md │ ├── npm.json │ ├── package.js │ └── server │ │ ├── context.js │ │ ├── data.js │ │ └── index.js └── vue-stylus │ ├── .gitignore │ ├── .versions │ ├── README.md │ ├── package.js │ └── vue-stylus.js ├── vue+meteor.png ├── vue+meteor.svg ├── with-async.png ├── withou-async.png └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "env", 4 | "stage-2" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | parserOptions: { 5 | sourceType: 'module' 6 | }, 7 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 8 | extends: 'standard', 9 | // required to lint *.vue files 10 | /* plugins: [ 11 | 'html' 12 | ], */ 13 | env: { 14 | browser: true, 15 | }, 16 | // Global vars 17 | globals: { 18 | 'Package': true, 19 | 'Npm': true, 20 | 'Meteor': true, 21 | 'Tracker': true, 22 | }, 23 | // add your custom rules here 24 | 'rules': { 25 | // allow paren-less arrow functions 26 | 'arrow-parens': 'off', 27 | // allow async-await 28 | 'generator-star-spacing': 'off', 29 | // allow debugger during development 30 | 'no-debugger': 'warn', 31 | // trailing comma 32 | 'comma-dangle': ['error', 'always-multiline'], 33 | // beware of returning assignement 34 | 'no-return-assign': 'off', 35 | 'no-extend-native': 'warn', 36 | 'no-undef': 'warn', 37 | 'standard/no-callback-literal': 'warn', 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: Akryum 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | 6 |

7 | 8 |

9 | 10 | Become a Patreon 11 | 12 |

13 | 14 | ## Sponsors 15 | 16 | [![sponsors logos](https://guillaume-chau.info/sponsors.png)](https://guillaume-chau.info/sponsors) 17 | 18 |
19 |
20 |
21 | 22 | vue+meteor is a set of packages to help you create awesome apps quickly and efficiently with two great web technologies: 23 | 24 | - [vuejs](http://vuejs.org/) is the frontend 25 | - [meteor](http://meteor.com/) is the platform (client, server, database, network) 26 | 27 | You will be able to [use meteor data inside Vue](https://github.com/Akryum/vue-meteor-tracker#vue-integration-for-meteor) or [write `.vue` files in your meteor project](https://github.com/Akryum/meteor-vue-component/tree/master/packages/vue-component). 28 | 29 | ### [Complete Example/Demo Project](https://github.com/Akryum/vue-meteor-demo) 30 | 31 | ## Quick Packages Links 32 | 33 | Here is a list of recommended packages for developping a meteor+vue app: 34 | 35 | - [:package: `vue-meteor-tracker`](https://github.com/Akryum/vue-meteor-tracker) (meteor tracker integration) 36 | - [:package: `akryum:vue-component`](https://github.com/Akryum/meteor-vue-component/tree/master/packages/vue-component) (vue component files) 37 | - [:package: `akryum:vue-router2`](https://github.com/Akryum/meteor-vue-component/tree/master/packages/vue-router2) (`vue-router` 2.x helpers) 38 | - [:package: `vue-apollo`](https://github.com/Akryum/vue-apollo) (apollo integration) 39 | - [:package: `vuejs:blaze-integration`](https://github.com/meteor-vue/blaze-integration) (integrate Vue and Blaze) 40 | - [:package: `vue-supply`](https://github.com/Akryum/vue-supply) (use reactive data & automatic subscriptions in components and vuex store) 41 | - [:package: `akryum:vue-ssr`](https://github.com/Akryum/vue-meteor/tree/master/packages/vue-ssr) (Server-Side Rendering) 42 | 43 | ## Resources 44 | 45 | ### Examples 46 | 47 | - [Guide Example](https://github.com/meteor-vue/guide) 48 | - [TodoMVC](https://github.com/meteor-vue/todomvc) 49 | - [Complete Example/Demo Project](https://github.com/Akryum/vue-meteor-demo) 50 | 51 |
52 | 53 | ### Meteor & Tracker data integration ![vue](https://img.shields.io/badge/vue-1.x-green.svg) ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 54 | 55 | Declarative subscriptions and meteor reactive data 56 | 57 | [:package: See Usage in npm vue-meteor-tracker package](https://github.com/Akryum/vue-meteor-tracker#vue-integration-for-meteor) 58 | 59 |
60 | 61 | ### Single-file component ![vue](https://img.shields.io/badge/vue-1.x-green.svg) ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 62 | 63 | It allows you to write your components in [this format](https://vuejs.org/v2/guide/single-file-components.html) with hot-reloading support. 64 | 65 | [:package: See Usage in arkyum:vue-component package](https://github.com/Akryum/meteor-vue-component/tree/master/packages/vue-component#usage) 66 | 67 |
68 | 69 | ### Routing ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 70 | 71 | Routing for Vue 2.x and Meteor using [vue-router](https://github.com/vuejs/vue-router). 72 | 73 | [:package: See Installation & Usage in arkyum:vue-router2 package](https://github.com/Akryum/meteor-vue-component/tree/master/packages/vue-router2#installation) 74 | 75 | [Example app](https://github.com/Akryum/meteor-vue2-example-routing) 76 | 77 |
78 | 79 | ### Apollo integration ![vue](https://img.shields.io/badge/vue-1.x-green.svg) ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 80 | 81 | Use apollo in your vue component! 82 | 83 | [:package: See Installation & Usage in the vue-apollo npm package](https://github.com/Akryum/vue-apollo) 84 | 85 |
86 | 87 | ### Server-side rendering ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 88 | 89 | Very easy way to render your frontend on the server automatically when a user first loads the app. 90 | 91 | [:package: See Installation & Usage in the akryum:vue-ssr package](https://github.com/meteor-vue/vue-meteor/tree/master/packages/vue-ssr#installation) 92 | 93 |
94 | 95 | ### Integrate Blaze ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 96 | 97 | Render Blaze templates in Vue components and the other way around! 98 | 99 | [:package: See Installation & Usage in the vuejs:blaze-integration package](https://github.com/meteor-vue/blaze-integration) 100 | 101 | 102 |
103 | 104 | 105 | ## Vue 1.x 106 | 107 | See `old` branch. 108 | 109 | --- 110 | 111 | ## Features & Roadmap 112 | 113 | Currently supported and possible future features (in no particular order) are: 114 | 115 | - [x] Declarative subscriptions and meteor reactive data ![vue](https://img.shields.io/badge/vue-1.x-green.svg) ![vue](https://img.shields.io/badge/vue-2.x-brightgreen.svg) 116 | - [x] Single-file components (.vue) with basic support of `