mirror of https://github.com/toddmotto/echo.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.2 KiB
104 lines
2.2 KiB
/* |
|
* Gruntfile.js |
|
* @author Todd Motto |
|
* @version 1.0.0 |
|
*/ |
|
|
|
'use strict'; |
|
|
|
var LIVERELOAD_PORT = 35729; |
|
|
|
var lrSnippet = require('connect-livereload')({ |
|
port: LIVERELOAD_PORT |
|
}); |
|
|
|
var mountFolder = function (connect, dir) { |
|
return connect.static(require('path').resolve(dir)); |
|
}; |
|
|
|
module.exports = function (grunt) { |
|
|
|
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); |
|
|
|
grunt.initConfig({ |
|
pkg: grunt.file.readJSON('package.json'), |
|
project: { name: 'echo' }, |
|
connect: { |
|
options: { |
|
port: 9000, |
|
hostname: 'localhost' |
|
}, |
|
livereload: { |
|
options: { |
|
middleware: function (connect) { |
|
return [lrSnippet, mountFolder(connect, 'dist')]; |
|
} |
|
} |
|
} |
|
}, |
|
tag: { |
|
banner: '/*!\n' + |
|
' * <%= pkg.name %> v<%= pkg.version %>\n' + |
|
' * <%= pkg.description %>\n' + |
|
' * Project: <%= pkg.homepage %>\n' + |
|
' * by <%= pkg.author.name %>: <%= pkg.author.url %>\n' + |
|
' * Copyright.' + |
|
' <%= pkg.licenses[0].type %> licensed.\n' + |
|
' */\n' |
|
}, |
|
jshint: { |
|
options: { |
|
jshintrc: '.jshintrc' |
|
}, |
|
files: 'src/<%= project.name %>.js', |
|
}, |
|
concat: { |
|
dist: { |
|
src: ['src/<%= project.name %>.js'], |
|
dest: 'dist/<%= project.name %>.js' |
|
}, |
|
options: { |
|
banner: '<%= tag.banner %>' |
|
} |
|
}, |
|
uglify: { |
|
files: { |
|
src: ['dist/<%= project.name %>.js'], |
|
dest: 'dist/<%= project.name %>.min.js' |
|
}, |
|
options: { |
|
banner: '<%= tag.banner %>' |
|
} |
|
}, |
|
open: { |
|
server: { |
|
path: 'http://localhost:<%= connect.options.port %>' |
|
} |
|
}, |
|
watch: { |
|
concat: { |
|
files: 'src/{,*/}*.js', |
|
tasks: ['concat:dist', 'uglify'] |
|
}, |
|
livereload: { |
|
options: { |
|
livereload: LIVERELOAD_PORT |
|
}, |
|
files: [ |
|
'{,*/}*.html', |
|
'dist/{,*/}*.js' |
|
] |
|
} |
|
} |
|
}); |
|
|
|
grunt.registerTask('default' , [ |
|
'jshint', |
|
'concat:dist', |
|
'uglify', |
|
'connect:livereload', |
|
'open', |
|
'watch' |
|
]); |
|
|
|
};
|
|
|