首页 > 网站 > WEB开发 > 正文

Grunt完整打包一个项目实例

2024-04-27 14:08:50
字体:
来源:转载
供稿:网友

Grunt完整打包一个项目实例

Grunt确实好用,配置好Gruntfile.js之后,一个命令就行云如流水,程序帮你搞定一切,爽歪歪。

我们先看压缩前的目录:

再看打包后的目录:

build是打包后的文件夹,main.CSS是压缩后的,build/js下的文件也是压缩后的,build下的html也是压缩后的,减少了很多人工打包的工作。

OK,来看下我们的核心Gruntfile.js文件,打包的流程配置都是在这个里面完成。

module.exports = function(grunt) {  // 项目配置  grunt.initConfig({    pkg: grunt.file.readJSON('package.json'),    clean: { //清除目标文件下文件      payment: {        src: "payment/build"      }    },    copy: {      payment: {        expand: true,        cwd: 'payment/src',//源文件路径        src: '**',//源文件目录下的所有文件        dest: 'payment/build/',//目标文件路径,把源文件下的文件复制到该目录下        flatten: false,//用来指定是否保持文件目录结构        filter: 'isFile',      },    },    uglify: {//压缩js文件      payment: {        files: [{          expand: true,          cwd: 'payment/src/js', //js源文件目录          src: '*.js', //所有js文件          dest: 'payment/build/js' //输出到此目录下        }]      }    },    // sass: {    //   payment: {    //     files: [{    //       expand: true,    //       cwd: 'src',    //       src: ['*.scss'],    //       dest: 'payment/build',    //       ext: '.css'    //     }]    //   }    // },    cssmin: { //压缩css      payment: {        "files": {          'payment/build/css/main.css': ['payment/src/css/*.css']//将数组里面的css文件压缩成一个目标文件        }      }    },    htmlmin: { //压缩html      payment: {        options: { // Target options          removeComments: true,          collapseWhitespace: true        },        files: [{          expand: true, // Enable dynamic expansion.          cwd: 'payment/src', // Src matches are relative to this path.          src: ['*.html'], // Actual pattern(s) to match.          dest: 'payment/build/', // Destination path PRefix.          ext: '.html', // Dest filepaths will have this extension.          extDot: 'first' // Extensions in filenames begin after the first dot        }]      }    }  });  // 加载提供"uglify"任务的插件  grunt.loadNpmTasks('grunt-contrib-clean');  grunt.loadNpmTasks('grunt-contrib-copy');  grunt.loadNpmTasks('grunt-contrib-uglify');  grunt.loadNpmTasks('grunt-contrib-concat');  grunt.loadNpmTasks('grunt-contrib-cssmin');  grunt.loadNpmTasks('grunt-contrib-htmlmin');  // grunt.loadNpmTasks('grunt-contrib-sass');  grunt.loadNpmTasks('grunt-contrib-watch');  // 默认任务  grunt.registerTask('payment', ['clean:payment','copy:payment', 'uglify:payment', 'cssmin:payment', 'htmlmin:payment']);}

按照这个配置大家就可以自动化打包自己的项目咯。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表