grunt-contrib-compress v0.6.0 压缩(打包)文件和文件夹

发布于 2020-10-03 11:07:53 字数 2903 浏览 1526 评论 0

新手上路

本插件要求 Grunt ~0.4.0 (即0.4.x)版本。

如果你没有使用过 Grunt,请先阅读 新手上路,这篇文章会讲解如何创建 Gruntfile,如何安装 Grunt 插件。如果你已经熟悉了 Grunt 的流程,可以通过下面的命令安装本插件:

npm install grunt-contrib-compress --save-dev

安装完插件后就可以在Gruntfile中通过下面的JS语句启用插件了:

grunt.loadNpmTasks('grunt-contrib-compress');

本插件是为Grunt 0.4.x设计的,如果你还在用v0.3.x的话,强烈建议你 升级。如果你因为某些原因无法升级的话,请使用 v0.3.2

压缩任务 compress

使用 grunt compress 命令运行本任务

任务的目标(target)、文件和选项的详细说明可参见 Grunt文档。

本任务使用了以下Node库: archiver (for zip/tar) zlib (for gzip).

选项 options

archive

类型: String or Function 适用模式: zip tar

该参数用于定义压缩文档的输出位置。每个目标只能设置一个输出文件。

如果类型是函数,则该函数必须返回一个字符串。

这个选项只适用于多文件压缩到一个文件的情况,比如压缩为zip或者tar文件。如果你要使用gzip压缩的话,请使用Grunt中标准的“源文件/目标文件”(src/dest)指定。

mode

类型: String

用于定义使用哪种压缩模式,目前支持gzip, deflate, deflateRaw, tar, tgz (tar gzip) 和 zip.

对每一对源文件/目标文件,都会自动拉探测压缩模式,但也可以手动覆盖。

level

类型: Integer 适用模式: zip 默认值: 1

设置压缩级别。

目前gzip压缩的级别不可用,因为node的zlib库中缺少相应的支持。

pretty

类型: Boolean 默认值: false

输出记录时对文件大小进行格式化。

使用示例

// 创建一个zip文件
compress: {
  main: {
    options: {
      archive: 'archive.zip'
    },
    files: [
      {src: ['path/*'], dest: 'internal_folder/', filter: 'isFile'}, // 包含路径中的文件
      {src: ['path/**'], dest: 'internal_folder2/'}, // 包含路径中的文件和子目录
      {expand: true, cwd: 'path/', src: ['**'], dest: 'internal_folder3/'}, // 使所有源文件相对于cwd
      {flatten: true, src: ['path/**'], dest: 'internal_folder4/', filter: 'isFile'} // 将结果扁平化,全部放在同一级目录
    ]
  }
}
// 一对一gzip压缩
compress: {
  main: {
    options: {
      mode: 'gzip'
    },
    expand: true,
    cwd: 'assets/',
    src: ['**/*'],
    dest: 'public/'
  }
}
// 扩展输出文件
compress: {
  main: {
    options: {
      mode: 'gzip'
    },
    files: [
      // src/目录中的每个文件都会被以.gz.js后缀输出到dist/目录中
      {expand: true, src: ['src/*.js'], dest: 'dist/', ext: '.gz.js'}
    ]
  }
}
// 使用函数来返回输出文件名
compress: {
  main: {
    options: {
      archive: function () {
        // git.tag的值由其它的任务指定
        return git.tag + '.zip'
      }
    },
    files: [
      {expand: true, src: ['src/*.js'], dest: 'dist/'}
    ]
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

emdigitizer10

文章 0 评论 0

残龙傲雪

文章 0 评论 0

奢望

文章 0 评论 0

微信用户

文章 0 评论 0

又爬满兰若

文章 0 评论 0

独孤求败

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文