Tools & Resources
轻量、实用、工业级
开放共进,努力构建最大化价值技术生态 ...
工具资源
工欲善其事,必先利其器
静态资源编译打包解包工具 一、程序下载 二、资源打包(Pack) 三、资源解包(Unpack) 四、打包程序开发

DDZEB 基础设施框架中包含一个静态资源管理框架 ddzeb/res,可用于对 Web 服务器所使用的静态资源进行动态编译、压缩以及合成等操作。

一、程序下载

本程序是一个小工具,提供打包功能,用于静态资源发布前的打包处理,同时,您也可以使用本程序将已经打包的文件进行解包操作。请选择适合您操作系统的版本进行下载:

将下载下来的文件放入 $PATH 的某一目录下即可将打包程序作为系统命令使用,比如,在 darwin/macOS 系统上放入 /usr/local/bin 下即可。

> wget https://ddzeb.com/-dl/ddzeb-pack.darwin-arm64 -O /usr/local/bin/ddzeb-pack
> chmod +x /usr/local/bin/ddzeb-pack
二、资源打包(Pack)

通过命令行参数指定源目录(输入)以及目标文件(输出)即可,由于源目录可能会部分打包,而过滤掉特别大的文件,我们可以通过指定一些需要过滤掉的文件夹来告诉打包程序,比如:

ddzeb-pack root:pb:dl root.pack quiet

以上命令将 root 目录下的资源进行打包,过滤掉 pb 以及 dl 子目录。如果不指定 quiet 参数,则会在打包过程中输出每一个被打包的文件名。

三、资源解包(Unpack)

解包是打包的相反操作,就如同解压缩文件一样。通过命令行参数指定源打包文件(输入)以及目标目录(输出)即可将包中文件解包到指定目录:

ddzeb-pack root.pack exported quiet

以上命令将资源包 root.pack 中文件输出到目录 exported 下,程序会自动创建资源包中可能包含的子目录。

四、打包程序开发

除了使用该打包程序进行资源打包外,您还可以基于 DDZEB 基础设施开发库 自行开发打包程序:

package main

import (
. "ddzeb/core"
. "ddzeb/res/pack"
  "strings"
)

func main() {
  FILE("root.pack").Write(func(w IWriteSeeker){
    Pack("root", w, func(p string) (r bool) {
      if r = !strings.HasPrefix(p, "/dl/"); r {
        println(p)
      }
      return
    })
  })
  println("done")
}