summaryrefslogtreecommitdiff
path: root/app/express-example/templates/extras/mvc/Gruntfile.js
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2014-12-04 12:00:43 -0800
committeryo mama <pepper@scannerjammer.com>2014-12-04 12:00:43 -0800
commit1c620393cdc8fb953bdc95bdaabcf70ff88fc4b3 (patch)
tree729455280af1cd83618801c94fafddf621f13617 /app/express-example/templates/extras/mvc/Gruntfile.js
parent0dd948fe07e97949d9ba01293cc4aca06ba34829 (diff)
added some stuffHEADmaster
Diffstat (limited to 'app/express-example/templates/extras/mvc/Gruntfile.js')
-rw-r--r--app/express-example/templates/extras/mvc/Gruntfile.js103
1 files changed, 103 insertions, 0 deletions
diff --git a/app/express-example/templates/extras/mvc/Gruntfile.js b/app/express-example/templates/extras/mvc/Gruntfile.js
new file mode 100644
index 0000000..2268bb5
--- /dev/null
+++ b/app/express-example/templates/extras/mvc/Gruntfile.js
@@ -0,0 +1,103 @@
+'use strict';
+
+var request = require('request');
+
+module.exports = function (grunt) {
+ // show elapsed time at the end
+ require('time-grunt')(grunt);
+ // load all grunt tasks
+ require('load-grunt-tasks')(grunt);
+
+ var reloadPort = 35729, files;
+
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ develop: {
+ server: {
+ file: 'app.js'
+ }
+ },<% if(options.cssPreprocessor == 'sass'){ %>
+ sass: {
+ dist: {
+ files: {
+ 'public/css/style.css': 'public/css/style.scss'
+ }
+ }
+ },<% } %><% if(options.cssPreprocessor == 'node-sass'){ %>
+ sass: {
+ dist: {
+ files: {
+ 'public/css/style.css': 'public/css/style.scss'
+ }
+ }
+ },<% } %><% if(options.cssPreprocessor == 'less'){ %>
+ less: {
+ dist: {
+ files: {
+ 'public/css/style.css': 'public/css/style.less'
+ }
+ }
+ },<% } %>
+ watch: {
+ options: {
+ nospawn: true,
+ livereload: reloadPort
+ },
+ js: {
+ files: [
+ 'app.js',
+ 'app/**/*.js',
+ 'config/*.js'
+ ],
+ tasks: ['develop', 'delayed-livereload']
+ },
+ css: {
+ files: [<% if(options.cssPreprocessor == 'none'){ %>
+ 'public/css/*.css'<% } %><% if(options.cssPreprocessor == 'sass'){ %>
+ 'public/css/*.scss'<% } %><% if(options.cssPreprocessor == 'node-sass'){ %>
+ 'public/css/*.scss'<% } %><% if(options.cssPreprocessor == 'less'){ %>
+ 'public/css/*.less'<% } %>
+ ],<% if(options.cssPreprocessor == 'sass'){ %>
+ tasks: ['sass'],<% } %><% if(options.cssPreprocessor == 'node-sass'){ %>
+ tasks: ['sass'],<% } %><% if(options.cssPreprocessor == 'less'){ %>
+ tasks: ['less'],<% } %>
+ options: {
+ livereload: reloadPort
+ }
+ },
+ views: {
+ files: [
+ 'app/views/*.<%= options.viewEngine %>',
+ 'app/views/**/*.<%= options.viewEngine %>'
+ ],
+ options: { livereload: reloadPort }
+ }
+ }
+ });
+
+ grunt.config.requires('watch.js.files');
+ files = grunt.config('watch.js.files');
+ files = grunt.file.expand(files);
+
+ grunt.registerTask('delayed-livereload', 'Live reload after the node server has restarted.', function () {
+ var done = this.async();
+ setTimeout(function () {
+ request.get('http://localhost:' + reloadPort + '/changed?files=' + files.join(','), function(err, res) {
+ var reloaded = !err && res.statusCode === 200;
+ if (reloaded)
+ grunt.log.ok('Delayed live reload successful.');
+ else
+ grunt.log.error('Unable to make a delayed live reload.');
+ done(reloaded);
+ });
+ }, 500);
+ });
+
+ grunt.registerTask('default', [<% if(options.cssPreprocessor == 'sass'){ %>
+ 'sass',<% } %><% if(options.cssPreprocessor == 'node-sass'){ %>
+ 'sass',<% } %><% if(options.cssPreprocessor == 'less'){ %>
+ 'less',<% } %>
+ 'develop',
+ 'watch'
+ ]);
+};