// 多个js压缩成一个js
  // Project configuration.
module.exports = function(grunt) {
    // 使用严格模式
    'use strict';

    // 这里定义我们需要的任务
    grunt.initConfig({
     pkg: grunt.file.readJSON('package.json'),
           requirejs : {
            build : {
                options : {
                    baseUrl : './',
                    name:'./js/config/main',    //主文件名字
                    optimize:'uglify',   //指定压缩工具类型  使用uglify工具压缩
                    mainConfigFile: './js/config/config.js',  //require 的主文件
                    out:'./assets/js/<%= pkg.name %>2.min.js'       //压缩后的文件
                    //其他无需指定  本插件会自动寻找require引进的所有文件
                }
            }
        },
          concat : {
            css : {
                src : ['dist/css/*.css'],
                dest : 'dist/css/<%= pkg.name %>.css'
            }
        }, 
     cssmin: {  
         options: {  
             keepSpecialComments: 0  
         },  
         compress: {  
           files: {
            'assets/css/<%= pkg.name %>.min.css': ['dist/css/<%= pkg.name %>.css']
          }
      }  
     }, 
        // 设置任务,删除文件夹
    clean: {
        dist: 'dist'
    },

    // 通过sass编译成css文件
    sass: {
        dist: {
            files: [{
                expand: true,
                cwd: 'scss',
                src: ['*.scss'],
                dest: 'dist/css',
                ext: '.css'
            }]
        }
    },
         // 检测改变,自动跑sass任务
    watch: {
        scripts: {
            files: ['scss/*.scss','js/*.js','js/*/*.js','assets/css/*.css'],
            tasks: ['sass','concat','cssmin'],
            options: {
                spawn: false
            }
        }
    }


    });
    grunt.loadNpmTasks('grunt-contrib-requirejs');
      grunt.loadNpmTasks('grunt-contrib-concat'); 
      grunt.loadNpmTasks('grunt-contrib-cssmin');
    // 一定要引用着3个模块
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    // 把需要跑的任务注册到default这里每次运行grunt的时候先删除dist,然后重新编译,最后监测文件夹的情况。
    grunt.registerTask('default', ['clean:dist', 'sass:dist','requirejs','concat', 'cssmin', 'watch']);
};
View Code

相关文章: