新建
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
module.exports = function (grunt) {
|
||||
'use strict';
|
||||
grunt.initConfig({
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
uglify: {
|
||||
target: {
|
||||
files: {
|
||||
'build/js/bootstrap-datetimepicker.min.js': 'src/js/bootstrap-datetimepicker.js'
|
||||
}
|
||||
},
|
||||
options: {
|
||||
mangle: true,
|
||||
compress: {
|
||||
dead_code: false // jshint ignore:line
|
||||
},
|
||||
output: {
|
||||
ascii_only: true // jshint ignore:line
|
||||
},
|
||||
report: 'min',
|
||||
preserveComments: function(node, comment) {
|
||||
// preserve comments that start with a bang
|
||||
return /^!/.test( comment.value );
|
||||
}
|
||||
}
|
||||
},
|
||||
jshint: {
|
||||
all: [
|
||||
'Gruntfile.js', 'src/js/*.js', 'test/*.js'
|
||||
],
|
||||
options: {
|
||||
'browser': true,
|
||||
'node': true,
|
||||
'jquery': true,
|
||||
'boss': false,
|
||||
'curly': true,
|
||||
'debug': false,
|
||||
'devel': false,
|
||||
'eqeqeq': true,
|
||||
'bitwise': true,
|
||||
'eqnull': true,
|
||||
'evil': false,
|
||||
'forin': true,
|
||||
'immed': false,
|
||||
'laxbreak': false,
|
||||
'newcap': true,
|
||||
'noarg': true,
|
||||
'noempty': false,
|
||||
'nonew': false,
|
||||
'onevar': true,
|
||||
'plusplus': false,
|
||||
'regexp': false,
|
||||
'undef': true,
|
||||
'sub': true,
|
||||
'strict': true,
|
||||
'unused': true,
|
||||
'white': true,
|
||||
'es3': true,
|
||||
'camelcase': true,
|
||||
'quotmark': 'single',
|
||||
'globals': {
|
||||
'define': false,
|
||||
'moment': false,
|
||||
// Jasmine
|
||||
'jasmine': false,
|
||||
'describe': false,
|
||||
'xdescribe': false,
|
||||
'expect': false,
|
||||
'it': false,
|
||||
'xit': false,
|
||||
'spyOn': false,
|
||||
'beforeEach': false,
|
||||
'afterEach': false
|
||||
}
|
||||
}
|
||||
},
|
||||
jscs: {
|
||||
all: [
|
||||
'Gruntfile.js', 'src/js/*.js', 'test/*.js'
|
||||
],
|
||||
options: {
|
||||
config: '.jscs.json'
|
||||
}
|
||||
},
|
||||
less: {
|
||||
production: {
|
||||
options: {
|
||||
cleancss: true,
|
||||
compress: true,
|
||||
paths: 'node_modules'
|
||||
},
|
||||
files: {
|
||||
'build/css/bootstrap-datetimepicker.min.css': 'src/less/bootstrap-datetimepicker-build.less'
|
||||
}
|
||||
},
|
||||
development: {
|
||||
options: {
|
||||
paths: 'node_modules'
|
||||
},
|
||||
files: {
|
||||
'build/css/bootstrap-datetimepicker.css': 'src/less/bootstrap-datetimepicker-build.less'
|
||||
}
|
||||
}
|
||||
},
|
||||
env: {
|
||||
paris: {
|
||||
TZ: 'Europe/Paris' // sets env for phantomJS https://github.com/ariya/phantomjs/issues/10379#issuecomment-36058589
|
||||
}
|
||||
},
|
||||
connect: {
|
||||
server: {
|
||||
options: {
|
||||
port: 8099
|
||||
}
|
||||
}
|
||||
},
|
||||
jasmine: {
|
||||
customTemplate: {
|
||||
src: 'src/js/*.js',
|
||||
options: {
|
||||
specs: 'test/*Spec.js',
|
||||
helpers: 'test/*Helper.js',
|
||||
host: 'http://127.0.0.1:8099',
|
||||
styles: [
|
||||
'node_modules/bootstrap/dist/css/bootstrap.min.css',
|
||||
'build/css/bootstrap-datetimepicker.min.css'
|
||||
],
|
||||
vendor: [
|
||||
'node_modules/jquery/dist/jquery.min.js',
|
||||
'node_modules/moment/min/moment-with-locales.min.js',
|
||||
'node_modules/moment-timezone/moment-timezone.js',
|
||||
'node_modules/bootstrap/dist/js/bootstrap.min.js'
|
||||
],
|
||||
display: 'none',
|
||||
summary: 'true'
|
||||
}
|
||||
}
|
||||
},
|
||||
nugetpack: {
|
||||
less: {
|
||||
src: 'src/nuget/Bootstrap.v3.Datetimepicker.nuspec',
|
||||
dest: 'build/nuget',
|
||||
options: {
|
||||
version: '<%= pkg.version %>'
|
||||
}
|
||||
},
|
||||
css: {
|
||||
src: 'src/nuget/Bootstrap.v3.Datetimepicker.CSS.nuspec',
|
||||
dest: 'build/nuget',
|
||||
options: {
|
||||
version: '<%= pkg.version %>'
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
grunt.loadTasks('tasks');
|
||||
|
||||
grunt.loadNpmTasks('grunt-env');
|
||||
grunt.loadNpmTasks('grunt-contrib-connect');
|
||||
grunt.loadNpmTasks('grunt-contrib-jasmine');
|
||||
grunt.loadNpmTasks('grunt-nuget');
|
||||
|
||||
require('load-grunt-tasks')(grunt);
|
||||
grunt.registerTask('default', ['jshint', 'jscs', 'less', 'env:paris', 'connect', 'jasmine']);
|
||||
grunt.registerTask('build:travis', [
|
||||
// code style
|
||||
'jshint',
|
||||
// build
|
||||
'uglify', 'less',
|
||||
// tests
|
||||
'env:paris', 'connect', 'jasmine'
|
||||
]);
|
||||
|
||||
// Task to be run when building
|
||||
grunt.registerTask('build', ['jshint', 'jscs', 'uglify', 'less']);
|
||||
|
||||
grunt.registerTask('test', ['jshint', 'jscs', 'uglify', 'less', 'env:paris', 'connect', 'jasmine']);
|
||||
|
||||
grunt.registerTask('docs', 'Generate docs', function () {
|
||||
grunt.util.spawn({
|
||||
cmd: 'mkdocs',
|
||||
args: ['build', '--clean']
|
||||
});
|
||||
});
|
||||
|
||||
grunt.registerTask('release', function (version) {
|
||||
if (!version || version.split('.').length !== 3) {
|
||||
grunt.fail.fatal('malformed version. Use grunt release:1.2.3');
|
||||
}
|
||||
|
||||
grunt.task.run([
|
||||
'bump_version:' + version,
|
||||
'build:travis',
|
||||
'docs',
|
||||
'nugetpack'
|
||||
]);
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user