123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- /* global require, module */
- var path = require('path');
- module.exports = function(grunt) {
- 'use strict';
- // These plugins provide necessary tasks.
- /* [Build plugin & task ] ------------------------------------*/
- grunt.loadNpmTasks('grunt-module-dependence');
- grunt.loadNpmTasks('grunt-replace');
- grunt.loadNpmTasks('grunt-contrib-clean');
- grunt.loadNpmTasks('grunt-contrib-copy');
- grunt.loadNpmTasks('grunt-contrib-concat');
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-browser-sync');
- grunt.loadNpmTasks('grunt-contrib-watch');
- var pkg = grunt.file.readJSON('package.json');
- var banner = '/*!\n' +
- ' * ====================================================\n' +
- ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
- '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
- '<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
- ' * GitHub: <%= pkg.repository.url %> \n' +
- ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
- ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %>\n' +
- ' * ====================================================\n' +
- ' */\n\n';
- var expose = '\nuse(\'expose-kityminder\');\n';
- // Project configuration.
- grunt.initConfig({
- // Metadata.
- pkg: pkg,
- clean: {
- last: 'dist'
- },
- // watch
- watch: {
- files: 'src/**',
- tasks: ['build']
- },
- // browser sync for dev
- browserSync: {
- bsFiles: {
- dist: 'dist/css/*.css',
- src: 'src/**'
- },
- options: {
- server: {
- baseDir: './',
- index: 'dev.html',
- watchTask: true
- }
- }
- },
- // resolve dependence
- dependence: {
- options: {
- base: 'src',
- entrance: 'expose-kityminder'
- },
- merge: {
- files: [{
- src: 'src/**/*.js',
- dest: 'dist/kityminder.core.js'
- }]
- }
- },
- // concat, just add closure
- concat: {
- options: {
- banner: banner + '(function () {\n',
- footer: expose + '})();'
- },
- build: {
- files: {
- 'dist/kityminder.core.js': ['dist/kityminder.core.js']
- }
- }
- },
- uglify: {
- options: {
- banner: banner
- },
- minimize: {
- src: 'dist/kityminder.core.js',
- dest: 'dist/kityminder.core.min.js'
- }
- },
- copy: {
- dist: {
- src: 'src/kityminder.css',
- dest: "dist/kityminder.core.css"
- }
- }
- });
- // Build task(s).
- grunt.registerTask('build', ['clean', 'dependence', 'concat:build', 'uglify:minimize', 'copy']);
- grunt.registerTask('dev', ['browserSync', 'watch']);
- };
|