Skip to content

Latest commit

 

History

History
94 lines (75 loc) · 3.02 KB

README.md

File metadata and controls

94 lines (75 loc) · 3.02 KB

express-vue-renderer

NPM version Build Status Dependency Status Coverage percentage Greenkeeper badge Codacy Badge

Rendering Engine for turning Vue files into Javascript Objects

Installation

$ npm install --save express-vue-renderer

Usage

Include the library at the top level like so

const ExpressVueRenderer = require('express-vue-renderer');

The library returns a function called renderer

It takes 3 params, 2 required and one optional.

ExpressVueRenderer.renderer(componentPath, data, [vueOptions])

The promise returns an object called app, or an error

ExpressVueRenderer.renderer(componentPath, data, [vueOptions])
    .then(app => {
        //App is an object that contains 4 parts
        head: //a string of the head,
        app: //the VueJS App Object,
        script: //the script string including the <script> elements,
        template: //the template, if no template was passed into vueOptions,
        //it uses a backup template
    })
    .catch(error => {
        //Do something with the error here
    });

VueOptions

{
    rootPath: path.join(__dirname, '/../tests'),
    viewsPath: 'vueFiles',
    componentsPath: 'vueFiles/components',
    layout: {
        start: '<body><div id="app">',
        end: '</div></body>'
    },
    vue: {
        head: {
            meta: [{
                    property: 'og:title',
                    content: 'Page Title'
                },
                {
                    name: 'twitter:title',
                    content: 'Page Title'
                },
                {
                    script: 'https://unpkg.com/[email protected]/dist/vue.js'
                }, {
                    name: 'viewport',
                    content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'
                }
            ]
        }
    },
    data: {
        thing: true
    }

License

Apache-2.0 © Daniel Cherubini