133 lines
2.4 KiB
JavaScript
133 lines
2.4 KiB
JavaScript
'use strict';
|
|
|
|
module.exports = function (grunt) {
|
|
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
|
|
|
|
var config = {
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
clean: {
|
|
build: ['dist/*', 'doc/*', 'report/*', 'temp/*'],
|
|
tests: ['test/*.min.tests.html']
|
|
},
|
|
copy: {
|
|
dist: {
|
|
files: [
|
|
{
|
|
expand: true,
|
|
cwd: 'src',
|
|
src: ['*.html', 'css/*.*', 'img/*.*', 'js/*.*'],
|
|
dest: 'dist'
|
|
},
|
|
{
|
|
expand: true,
|
|
cwd: 'src/bower_components/kbw-plugin/dist/js',
|
|
src: ['*.*'],
|
|
dest: 'dist/js'
|
|
}
|
|
]
|
|
}
|
|
},
|
|
jsdoc: {
|
|
options: {
|
|
destination: 'doc'
|
|
},
|
|
all: ['src/js/*.js', '!src/js/*-*.js']
|
|
},
|
|
jshint: {
|
|
options: {
|
|
jshintrc: true
|
|
},
|
|
all: ['src/js/*.js']
|
|
},
|
|
qunit: {
|
|
options: {
|
|
coverage: {
|
|
disposeCollector: true,
|
|
src: ['src/js/*.js', '!src/js/*-*.js'],
|
|
instrumentedFiles: 'temp/',
|
|
htmlReport: 'report/',
|
|
linesThresholdPct: 95,
|
|
statementsThresholdPct: 95,
|
|
functionsThresholdPct: 95,
|
|
branchesThresholdPct: 80
|
|
}
|
|
},
|
|
all: ['test/*.html']
|
|
},
|
|
replace: {
|
|
dist: {
|
|
src: ['dist/index.html'],
|
|
dest: 'dist/index.html',
|
|
replacements: [
|
|
{
|
|
from: /bower_components\/jquery\/dist\/jquery.min.js/,
|
|
to: 'http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'
|
|
},
|
|
{
|
|
from: /bower_components\/kbw-plugin\/dist\/js\/jquery.plugin.min.js/,
|
|
to: 'js/jquery.plugin.min.js'
|
|
}
|
|
]
|
|
},
|
|
testmin: {
|
|
src: ['test/countdown.tests.html'],
|
|
dest: 'test/countdown.min.tests.html',
|
|
replacements: [
|
|
{
|
|
from: /src\/js\/jquery\.(.*)\.js/g,
|
|
to: 'dist/js/jquery.$1.min.js'
|
|
}
|
|
]
|
|
}
|
|
},
|
|
uglify: {
|
|
options: {
|
|
preserveComments: 'some',
|
|
sourceMap: true
|
|
},
|
|
plugin: {
|
|
files: [
|
|
{
|
|
expand: true,
|
|
cwd: 'src/js',
|
|
src: ['*.js', '!*-*.js'],
|
|
dest: 'dist/js',
|
|
ext: '.min.js',
|
|
extDot: 'last'
|
|
}
|
|
]
|
|
}
|
|
},
|
|
zip: {
|
|
all: {
|
|
cwd: 'dist',
|
|
src: ['dist/*.html', 'dist/css/*.*', 'dist/img/*.*', 'dist/js/*.*'],
|
|
dest: 'dist/jquery.countdown.package-<%= pkg.version %>.zip'
|
|
}
|
|
}
|
|
};
|
|
|
|
grunt.initConfig(config);
|
|
|
|
grunt.registerTask('dist', [
|
|
'copy:dist',
|
|
'replace:dist',
|
|
'zip'
|
|
]);
|
|
|
|
grunt.registerTask('test', [
|
|
'replace:testmin',
|
|
'qunit',
|
|
'clean:tests'
|
|
]);
|
|
|
|
grunt.registerTask('default', [
|
|
'clean:build',
|
|
'jshint',
|
|
'uglify',
|
|
'test',
|
|
'jsdoc',
|
|
'dist'
|
|
]);
|
|
};
|