Brand new project, create dirs "lib/modules", "lib/templates", "config"
exports.register = function (server, options, next) {
server.route({
path: '/',
method: 'GET',
handler: function (request, reply) {
reply.view('home', {title: 'Home Page'});
}
});
next();
};
exports.register.attributes = {
pkg: require('./package.json')
};
{
"name": "exampleHome",
"version": "0.0.1"
}
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
{{{content}}}
</body>
</html>
<p>Home Page!</p>
{
"connections": [
{
"port": 51871,
"host": "localhost"
}
],
"plugins": {
"visionary": {
"engines": { "html": "handlebars" },
"path": "./lib/templates",
"layout": true
},
"exampleHome": null
}
}
npm init
npm install --save rejoice handlebars visionary
"scripts": {
"start": "node node_modules/rejoice/bin/rejoice -c config/manifest.json"
}
(There will be other dependencies, don't remove them - not listing them here for brevity)
"dependencies": {
"exampleHome": "./lib/modules/home"
}
Note: exampleHome is specifying the local directory that contains the plugin, if you do this you need to npm install each time you make changes to it. This could alternatively be a git repository for true modularization of sections, or an npm published module (private or public NPM, whatever makes sense)
npm install
npm start
Fire up http://localhost:51871 and see it in action