本文目录

Grunt 压缩任务的配置参数说明

🌙
手机阅读
本文目录结构

以为一个项目的原因,使用 Grunt(这货用起来感觉币 Gulp 别扭多了,也可能是先入为主的感觉,毕竟 Gulp 是根据 Grunt 来该写的,出来的晚,而且用了 node 是 stream 操作,所以更舒服和快捷高效一些)

和 Gulp 一样,需要创建配置文件

必须Gruntfile.js 这个需要手动创建;

演示代码如下:

module.exports=function (grunt) {
    grunt.initConfig({
        pkg:grunt.file.readJSON('package.json'),
        // 这里是uglify任务的配置信息
        uglify:{
          options:{
            banner:'/* <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
          },
            static_mappings: {
                // 由于这里的 src压缩到dest文件映射时手动一个一个指定的,比较蛋疼;适合改动不多的;
                files: [
                    {src: 'lib/a.js', dest: 'build/a.min.js'},
                    {src: 'lib/b.js', dest: 'build/b.min.js'},
                    {src: 'lib/subdir/c.js', dest: 'build/subdir/c.min.js'},
                    {src: 'lib/subdir/d.js', dest: 'build/subdir/d.min.js'},
                ],
            },
            dynamic_mappings:{
              //这里就不需要一个一个的配置了
              files:[
                  {
                      expand: true,     // expand 设置为true用于启用下面的选项:
                      cwd: 'src/',      // 所有src指定的匹配都将相对于此处指定的路径(但不包括此路径) 。
                      src: ['**/*.js'], // 相对于cwd路径的匹配模式。
                      dest:'build/',    //目标文件路径前缀。
                      ext: '.min.js',   //对于生成的dest路径中所有实际存在文件,均使用这个属性值替换扩展名。
                      extDot: 'first',  //用于指定标记扩展名的英文点号的所在位置。可以赋值 'first' (扩展名从文件名中的第一个英文点号开始) 或 'last' (扩展名从最后一个英文点号开始),默认值为 'first'
                      // flatten:true,     //从生成的dest路径中移除所有的子路径部分,注:已经有的路径不删除,不营销静态配置里的二级目录。
                      rename: function (dest, src) {
                          return dest + src.replace(/testFlatten\/hello4/, '/rename/hello44444');
                      }
                  }
              ]
          },
        }

    });
    //
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.registerTask('default',['uglify']);
};

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了