|
|
|
var src = 'src/';
|
|
|
|
var dest = 'dist/';
|
|
|
|
|
|
|
|
var scripts = [
|
|
|
|
'src/js/app.js',
|
|
|
|
'src/js/controllers.js',
|
|
|
|
'src/js/filters.js',
|
|
|
|
'src/js/directives.js',
|
|
|
|
'src/js/script.js'
|
|
|
|
];
|
|
|
|
|
|
|
|
var vendor = [
|
|
|
|
'dist/js/lib/jquery-1.11.3.min.js',
|
|
|
|
'dist/js/lib/bootstrap.min.js',
|
|
|
|
'dist/js/lib/angular.min.js',
|
|
|
|
'dist/js/lib/ngStorage.min.js',
|
|
|
|
'dist/js/lib/lodash.min.js',
|
|
|
|
'dist/js/lib/d3.min.js',
|
|
|
|
'dist/js/lib/d3.tip.min.js',
|
|
|
|
'dist/js/lib/topojson.min.js',
|
|
|
|
'dist/js/lib/datamaps.min.js',
|
|
|
|
'dist/js/lib/moment.min.js',
|
|
|
|
'dist/js/lib/moment.en.min.js',
|
|
|
|
'dist/js/lib/toastr.min.js',
|
|
|
|
'dist/js/lib/jquery.sparkline.min.js',
|
|
|
|
'dist/js/lib/primus.min.js'
|
|
|
|
];
|
|
|
|
|
|
|
|
var styles = [
|
|
|
|
'bootstrap.min.css',
|
|
|
|
'minimal-icons-embedded.css',
|
|
|
|
'toastr.min.css',
|
|
|
|
'style.css'
|
|
|
|
];
|
|
|
|
|
|
|
|
var src_lite = 'src-lite/';
|
|
|
|
var dest_lite = 'dist-lite/';
|
|
|
|
|
|
|
|
var scripts_lite = [
|
|
|
|
'scr-lite/js/app.js',
|
|
|
|
'scr-lite/js/controllers.js',
|
|
|
|
'scr-lite/js/filters.js',
|
|
|
|
'scr-lite/js/directives.js',
|
|
|
|
'scr-lite/js/script.js'
|
|
|
|
];
|
|
|
|
|
|
|
|
var vendor_lite = [
|
|
|
|
'dist-lite/js/lib/jquery-1.11.3.min.js',
|
|
|
|
'dist-lite/js/lib/bootstrap.min.js',
|
|
|
|
'dist-lite/js/lib/angular.min.js',
|
|
|
|
'dist-lite/js/lib/ngStorage.min.js',
|
|
|
|
'dist-lite/js/lib/lodash.min.js',
|
|
|
|
'dist-lite/js/lib/d3.min.js',
|
|
|
|
'dist-lite/js/lib/d3.tip.min.js',
|
|
|
|
'dist-lite/js/lib/topojson.min.js',
|
|
|
|
'dist-lite/js/lib/datamaps.min.js',
|
|
|
|
'dist-lite/js/lib/moment.min.js',
|
|
|
|
'dist-lite/js/lib/moment.en.min.js',
|
|
|
|
'dist-lite/js/lib/toastr.min.js',
|
|
|
|
'dist-lite/js/lib/jquery.sparkline.min.js',
|
|
|
|
'dist-lite/js/lib/primus.min.js'
|
|
|
|
];
|
|
|
|
|
|
|
|
var styles_lite = [
|
|
|
|
'bootstrap.min.css',
|
|
|
|
'minimal-icons-embedded.css',
|
|
|
|
'toastr.min.css',
|
|
|
|
'style.css'
|
|
|
|
];
|
|
|
|
|
|
|
|
module.exports = function(grunt) {
|
|
|
|
grunt.initConfig({
|
|
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
clean: {
|
|
|
|
build: ['dist'],
|
|
|
|
cleanup_js: ['dist/js/*.*', '!dist/js/netstats.*'],
|
|
|
|
cleanup_css: ['dist/css/*.css', '!dist/css/netstats.*.css'],
|
|
|
|
build_lite: ['dist-lite'],
|
|
|
|
cleanup_js_lite: ['dist-lite/js/*.*', '!dist-lite/js/netstats.*'],
|
|
|
|
cleanup_css_lite: ['dist-lite/css/*.css', '!dist-lite/css/netstats.*.css']
|
|
|
|
},
|
|
|
|
jade: {
|
|
|
|
build: {
|
|
|
|
options: {
|
|
|
|
data: {
|
|
|
|
debug: false,
|
|
|
|
pretty: true
|
|
|
|
}
|
|
|
|
},
|
|
|
|
files: {
|
|
|
|
'dist/index.html': 'src/views/index.jade'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
build_lite: {
|
|
|
|
options: {
|
|
|
|
data: {
|
|
|
|
debug: false,
|
|
|
|
pretty: true
|
|
|
|
}
|
|
|
|
},
|
|
|
|
files: {
|
|
|
|
'dist-lite/index.html': 'src-lite/views/index.jade'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
copy: {
|
|
|
|
build: {
|
|
|
|
files: [
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src/fonts/',
|
|
|
|
src: ['minimal-*.*'],
|
|
|
|
dest: 'dist/fonts/',
|
|
|
|
filter: 'isFile'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src/images/',
|
|
|
|
src: ['*.ico'],
|
|
|
|
dest: 'dist/',
|
|
|
|
filter: 'isFile'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src/css/',
|
|
|
|
src: styles,
|
|
|
|
dest: 'dist/css/',
|
|
|
|
filter: 'isFile'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src/js/lib/',
|
|
|
|
src: ['*.*'],
|
|
|
|
dest: 'dist/js/lib'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
build_lite: {
|
|
|
|
files: [
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src-lite/fonts/',
|
|
|
|
src: ['minimal-*.*'],
|
|
|
|
dest: 'dist-lite/fonts/',
|
|
|
|
filter: 'isFile'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src-lite/images/',
|
|
|
|
src: ['*.ico'],
|
|
|
|
dest: 'dist-lite/',
|
|
|
|
filter: 'isFile'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src-lite/css/',
|
|
|
|
src: styles,
|
|
|
|
dest: 'dist-lite/css/',
|
|
|
|
filter: 'isFile'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'src-lite/js/lib/',
|
|
|
|
src: ['*.*'],
|
|
|
|
dest: 'dist-lite/js/lib'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
cssmin: {
|
|
|
|
build: {
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'dist/css',
|
|
|
|
src: ['*.css', '!*.min.css'],
|
|
|
|
dest: 'dist/css/'
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
build_lite: {
|
|
|
|
files: [{
|
|
|
|
expand: true,
|
|
|
|
cwd: 'dist-lite/css',
|
|
|
|
src: ['*.css', '!*.min.css'],
|
|
|
|
dest: 'dist-lite/css/'
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
concat: {
|
|
|
|
vendor: {
|
|
|
|
options: {
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMapIncludeSources: true,
|
|
|
|
sourceMapIn: ['dist/js/lib/*.map']
|
|
|
|
},
|
|
|
|
src: vendor,
|
|
|
|
dest: 'dist/js/vendor.min.js'
|
|
|
|
},
|
|
|
|
scripts : {
|
|
|
|
options: {
|
|
|
|
separator: ';\n',
|
|
|
|
},
|
|
|
|
src: scripts,
|
|
|
|
dest: 'dist/js/app.js'
|
|
|
|
},
|
|
|
|
netstats: {
|
|
|
|
options: {
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMapIncludeSources: true,
|
|
|
|
sourceMapIn: ['dist/js/vendor.min.js.map', 'dist/js/app.min.js.map']
|
|
|
|
},
|
|
|
|
src: ['<%= concat.vendor.dest %>', '<%= uglify.app.dest %>'],
|
|
|
|
dest: 'dist/js/netstats.min.js',
|
|
|
|
nonull: true,
|
|
|
|
},
|
|
|
|
css: {
|
|
|
|
src: ['dist/css/*.min.css', 'dist/css/*.css'],
|
|
|
|
dest: 'dist/css/netstats.min.css'
|
|
|
|
},
|
|
|
|
vendor_lite: {
|
|
|
|
options: {
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMapIncludeSources: true,
|
|
|
|
sourceMapIn: ['dist-lite/js/lib/*.map']
|
|
|
|
},
|
|
|
|
src: vendor_lite,
|
|
|
|
dest: 'dist-lite/js/vendor.min.js'
|
|
|
|
},
|
|
|
|
scripts_lite : {
|
|
|
|
options: {
|
|
|
|
separator: ';\n',
|
|
|
|
},
|
|
|
|
src: scripts_lite,
|
|
|
|
dest: 'dist-lite/js/app.js'
|
|
|
|
},
|
|
|
|
netstats_lite: {
|
|
|
|
options: {
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMapIncludeSources: true,
|
|
|
|
sourceMapIn: ['dist-lite/js/vendor.min.js.map', 'dist-lite/js/app.min.js.map']
|
|
|
|
},
|
|
|
|
src: ['<%= concat.vendor_lite.dest %>', '<%= uglify.app_lite.dest %>'],
|
|
|
|
dest: 'dist-lite/js/netstats.min.js',
|
|
|
|
nonull: true,
|
|
|
|
},
|
|
|
|
css_lite: {
|
|
|
|
src: ['dist-lite/css/*.min.css', 'dist-lite/css/*.css'],
|
|
|
|
dest: 'dist-lite/css/netstats.min.css'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
uglify: {
|
|
|
|
app: {
|
|
|
|
options: {
|
|
|
|
mangle: false,
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMapIncludeSources: true
|
|
|
|
},
|
|
|
|
dest: 'dist/js/app.min.js',
|
|
|
|
src: ['<%= concat.scripts.dest %>']
|
|
|
|
},
|
|
|
|
app_lite: {
|
|
|
|
options: {
|
|
|
|
mangle: false,
|
|
|
|
sourceMap: true,
|
|
|
|
sourceMapIncludeSources: true
|
|
|
|
},
|
|
|
|
dest: 'dist-lite/js/app.min.js',
|
|
|
|
src: ['<%= concat.scripts_lite.dest %>']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-jade');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
|
|
|
|
|
|
grunt.registerTask('default', ['clean:build', 'clean:cleanup_js', 'clean:cleanup_css', 'jade:build', 'copy:build', 'cssmin:build', 'concat:vendor', 'concat:scripts', 'uglify:app', 'concat:netstats', 'concat:css', 'clean:cleanup_js', 'clean:cleanup_css']);
|
|
|
|
grunt.registerTask('lite', ['clean:build_lite', 'clean:cleanup_js_lite', 'clean:cleanup_css_lite', 'jade:build_lite', 'copy:build_lite', 'cssmin:build_lite', 'concat:vendor_lite', 'concat:scripts_lite', 'uglify:app_lite', 'concat:netstats_lite', 'concat:css_lite', 'clean:cleanup_js_lite', 'clean:cleanup_css_lite']);
|
|
|
|
grunt.registerTask('build', 'default');
|
|
|
|
grunt.registerTask('all', ['default', 'lite']);
|
|
|
|
};
|