UNPKG

generator-express-static

Version:

A generator for Yeoman used to create an Expressjs static site generator.

95 lines (79 loc) 2.54 kB
/** * Setup and run our Express server * * This server is used during development and is not necessary for production * once all static files have been rendered out */ var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var writer = require('express-writer'); <% if (viewEngine != 'jade') { %>var cons = require('consolidate');<% } %> <% if (viewEngine == 'hbs') { %> var fs = require('fs'); var hbs = require('handlebars'); var partials = "./views/partials/"; <% } %> <% if (cssEngine == 'stylus') { %>var stylus = require('stylus');<% } %><% if (cssEngine == 'sass') { %>var sass = require('node-sass');<% } %><% if (cssEngine == 'less') { %>var lessMiddleware = require('less-middleware');<% } %> var app = express(); var server; // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); <% if (viewEngine == 'hbs') { %> // Assign the swig engine to .html files app.engine('html', cons.handlebars); app.set('view engine', 'html'); // Register partials fs.readdirSync(partials).forEach(function (file) { var source = fs.readFileSync(partials + file, "utf8"), partial = /(.+)\.html/.exec(file).pop(); hbs.registerPartial(partial, source); }); <% } else {%> app.set('view engine', 'jade'); <% } %> <% if (cssEngine == 'sass') { %> app.use(sass.middleware({ src: __dirname + '/resources/', dest: __dirname + '/public/', debug: true, force: true })); <% } else if (cssEngine == 'less') { %> app.use(lessMiddleware({ src: __dirname + '/resources/', dest: __dirname + '/public/', debug: true, force: true })); <% } else if (cssEngine == 'css') {%> <% } else { %> app.use(stylus.middleware({ src: __dirname + '/resources/', dest: __dirname + '/public/', debug: true, force: true })); <% } %> app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); // Our environment for static file rendering } else if ('dist' == app.get('env')) { app.use(writer.watch); } // Out static site's routes app.get('/', routes.index); server = http.createServer(app); server.listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); console.log('Node environment is ' + app.get('env')); });