123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- 'use strict';
- var fs = require('fs');
- module.exports = function(grunt) {
- // Project configuration.
- grunt.initConfig({
- // Metadata.
- pkg: grunt.file.readJSON('bootstrap-table.jquery.json'),
- banner: '/*\n' +
- '* <%= pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' +
- '<%= pkg.homepage ? "* " + pkg.homepage : "" %>\n' +
- '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>\n' +
- '* Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %>\n' +
- '*/\n',
- // Task configuration.
- clean: ['dist', 'docs/dist'],
- concat: {
- //basic_target: {
- // src: ['src/<%= pkg.name %>.js', 'src/extensions/**/*.js'],
- // dest: 'dist/<%= pkg.name %>-all.js'
- //},
- locale_target: {
- src: ['src/locale/**/*.js'],
- dest: 'dist/<%= pkg.name %>-locale-all.js'
- }
- },
- uglify: {
- options: {
- banner: '<%= banner %>'
- },
- basic_target: {
- files: {
- 'dist/<%= pkg.name %>.min.js': ['src/<%=pkg.name %>.js'],
- //'dist/<%= pkg.name %>-all.min.js': ['dist/<%=pkg.name %>-all.js'],
- 'dist/<%= pkg.name %>-locale-all.min.js': ['dist/<%=pkg.name %>-locale-all.js']
- }
- },
- locale_target: {
- files: [{
- expand: true,
- cwd: 'src/locale',
- src: '**/*.js',
- dest: 'dist/locale',
- ext: '.min.js' // replace .js to .min.js
- }]
- },
- extensions_target: {
- files: [{
- expand: true,
- cwd: 'src/extensions',
- src: '**/*.js',
- dest: 'dist/extensions',
- ext: '.min.js' // replace .js to .min.js
- }]
- }
- },
- cssmin: {
- add_banner: {
- options: {
- banner: '<%= banner %>'
- },
- files: {
- 'dist/<%= pkg.name %>.min.css': ['src/<%=pkg.name %>.css']
- }
- }
- },
- copy: {
- source: {
- cwd: 'src', // set working folder / root to copy
- src: ['**/*.js', '**/*.css'], // copy all files and subfolders
- dest: 'dist', // destination folder
- expand: true // required when using cwd
- },
- files: {
- cwd: 'dist', // set working folder / root to copy
- src: '**/*', // copy all files and subfolders
- dest: 'docs/dist', // destination folder
- expand: true // required when using cwd
- }
- },
- release: {
- options: {
- additionalFiles: ['bootstrap-table.jquery.json'],
- beforeRelease: ['docs', 'default']
- }
- }
- });
- var bumpVersion = function (path, version, startWith) {
- var lines = fs.readFileSync(path, 'utf8').split('\n');
- lines.forEach(function (line, i) {
- if (line.indexOf(startWith) === 0) {
- lines[i] = startWith + version;
- }
- });
- fs.writeFileSync(path, lines.join('\n'), 'utf8');
- grunt.log.ok('bumped version of ' + path + ' to ' + version);
- };
- grunt.registerTask('docs', 'build the docs', function () {
- var version = require('./package.json').version;
- bumpVersion('./_config.yml', version, 'current_version: ');
- bumpVersion('./src/bootstrap-table.js', version, ' * version: ');
- bumpVersion('./src/bootstrap-table.css', version, ' * version: ');
- var changeLog = fs.readFileSync('./CHANGELOG.md', 'utf8');
- var latestLogs = changeLog.split('### ')[1];
- var date = new Date();
- var lines = [
- '### Latest release (' +
- [date.getFullYear(), date.getMonth() + 1, date.getDate()].join('-') + ')',
- '',
- '#### v' + latestLogs
- ];
- fs.writeFileSync('./docs/_includes/latest-release.md', lines.join('\n'), 'utf8');
- grunt.log.ok('updated the latest-release.md to ' + version);
- });
- grunt.loadNpmTasks('grunt-contrib-clean');
- grunt.loadNpmTasks('grunt-contrib-concat');
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-contrib-cssmin');
- grunt.loadNpmTasks('grunt-contrib-copy');
- grunt.loadNpmTasks('grunt-release');
- grunt.registerTask('default', ['clean', 'concat', 'uglify', 'cssmin', 'copy']);
- };
|