docs/docs-web/src/main/webapp/Gruntfile.js

169 lines
4.7 KiB
JavaScript

module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
init: ['dist'],
after: ['dist/style.css', 'dist/docs.js', 'dist/share.js', 'dist/less.css', 'dist/app', 'dist/partial']
},
ngAnnotate: {
options: {
singleQuotes: true
},
dist: {
files: [{
expand: true,
cwd: 'src',
src: ['app/**/*.js'],
dest: 'dist'
}]
}
},
concat: {
docs: {
options: {
separator: ';'
},
src: ['src/lib/jquery.js','src/lib/jquery.ui.js','src/lib/underscore.js','src/lib/colorpicker.js', 'src/lib/pell.js', 'src/lib/angular.js', 'src/lib/angular.*.js',
'dist/app/docs/app.js', 'dist/app/docs/controller/**/*.js', 'dist/app/docs/directive/*.js', 'dist/app/docs/filter/*.js', 'dist/app/docs/service/*.js'],
dest: 'dist/docs.js'
},
share: {
options: {
separator: ';'
},
src: ['src/lib/jquery.js','src/lib/jquery.ui.js','src/lib/underscore.js','src/lib/colorpicker.js', 'src/lib/pell.js', 'src/lib/angular.js', 'src/lib/angular.*.js',
'dist/app/share/app.js', 'dist/app/share/controller/*.js', 'dist/app/share/directive/*.js', 'dist/app/share/filter/*.js', 'dist/app/share/service/*.js'],
dest: 'dist/share.js'
},
css: {
src: ['src/style/*.css', 'dist/less.css'],
dest: 'dist/style.css'
}
},
less: {
dist: {
src: ['src/style/*.less'],
dest: 'dist/less.css'
}
},
cssmin: {
dist: {
src: 'dist/style.css',
dest: 'dist/style/style.min.css'
}
},
uglify: {
docs: {
src: 'dist/docs.js',
dest: 'dist/docs.min.js'
},
share: {
src: 'dist/share.js',
dest: 'dist/share.min.js'
}
},
ngtemplates: {
docs: {
cwd: 'src',
src: 'partial/docs/*.html',
dest: 'dist/docs.min.js',
options: {
append: true,
htmlmin: {
collapseBooleanAttributes: false,
collapseWhitespace: true,
removeAttributeQuotes: false,
removeComments: true,
removeEmptyAttributes: false,
removeRedundantAttributes: false,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true
}
}
},
share: {
cwd: 'src',
src: 'partial/share/*.html',
dest: 'dist/share.min.js',
options: {
append: true,
htmlmin: {
collapseBooleanAttributes: false,
collapseWhitespace: true,
removeAttributeQuotes: false,
removeComments: true,
removeEmptyAttributes: false,
removeRedundantAttributes: false,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true
}
}
}
},
copy: {
dist: {
expand: true,
cwd: 'src/',
src: ['**', '!**/*.js', '!*.html', '!**/*.less', '!**/*.css', 'locale/**'],
dest: 'dist/'
}
},
htmlrefs: {
index: {
src: 'src/index.html',
dest: 'dist/index.html'
},
share: {
src: 'src/share.html',
dest: 'dist/share.html'
}
},
cleanempty: {
options: {
files: false,
folders: true
},
src: ['dist/**']
},
replace: {
dist: {
src: ['dist/docs.min.js', 'dist/share.min.js', 'dist/**/*.html', 'dist/style/style.min.css'],
overwrite: true,
replacements: [{
from: '../api',
to: grunt.option('apiurl') || '../api'
}, {
from: '@build.date@',
to: new Date().getTime()
}]
}
},
apidoc: {
generate: {
src: '../java/',
dest: 'dist/apidoc/'
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-cleanempty');
grunt.loadNpmTasks('grunt-htmlrefs');
grunt.loadNpmTasks('grunt-css');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-ng-annotate');
grunt.loadNpmTasks('grunt-text-replace');
grunt.loadNpmTasks('grunt-apidoc');
grunt.loadNpmTasks('grunt-angular-templates');
// Default tasks.
grunt.registerTask('default', ['clean:init', 'ngAnnotate', 'concat:docs', 'concat:share', 'less', 'concat:css',
'cssmin', 'uglify:docs', 'uglify:share', 'ngtemplates:docs', 'ngtemplates:share', 'copy', 'clean:after',
'cleanempty', 'htmlrefs:index', 'htmlrefs:share', 'replace', 'apidoc']);
};