nonzzz / vite-plugin-compression

vite plugin. compress your bundle file.
MIT License
171 stars 10 forks source link

【功能请求】可以将打包后的 dist 目录打包成 *.tar.gz 压缩包 #46

Closed WangJincheng4869 closed 9 months ago

WangJincheng4869 commented 9 months ago

目前已经支持将单个文件压缩成 gz 和 br 文件,可以添加一个功能,当打包完成后将 dist 压缩成一个 *.tar.gz 文件。这样部署到 Linux 系统时更加友好,大致详细需求如下:

  1. 可以配置压缩包的名字
  2. 最好可以自动在压缩包名字后添加版本号
  3. 可以配置是否保留压缩包内的根目录,以及可以配置这个根目录的名称(这个名称跟压缩包的名字不同,例:压缩包的名字为 example-app-1.0.0.tar.gz,内部根目录名字为 example-app
  4. 也可以支持多种压缩算法,比如支持压缩为 zip。
nonzzz commented 9 months ago

当前compression插件提供的压缩功能是针对单文件的。你这个功能指的是单文件不压缩而是把整个文件夹变成xx.tar.gz? 如果是这样的话 当前的插件并不支持因为 将整个文件夹压缩的功能和当前的设计是不吻合的。

WangJincheng4869 commented 9 months ago

当前compression插件提供的压缩功能是针对单文件的。你这个功能指的是单文件不压缩而是把整个文件夹变成xx.tar.gz? 如果是这样的话 当前的插件并不支持因为 将整个文件夹压缩的功能和当前的设计是不吻合的。

是将整个文件夹压缩成 xx.tar.gz

nonzzz commented 9 months ago

那这个功能目前社区已经有实现好的了。https://github.com/Ssis53/vite-plugin-zip

WangJincheng4869 commented 9 months ago

那这个功能目前社区已经有实现好的了。https://github.com/Ssis53/vite-plugin-zip

issue 中这个插件貌似不兼容你的插件,并且是灰色的关闭状态。它仅支持 zip。

nonzzz commented 9 months ago

我不理解的是 如果 单个文件进行了gzip或者br以后整个文件包都是压缩过的 你想表达的意思是基于这些压缩过的在把整个目录在压成一个包吗?

WangJincheng4869 commented 9 months ago

我不理解的是 如果 单个文件进行了gzip或者br以后整个文件包都是压缩过的 你想表达的意思是基于这些压缩过的在把整个目录在压成一个包吗?

是的,用于发版使用,这样更好归档和版本发布。

nonzzz commented 9 months ago

了解了 这个功能会在下个版本进行支持 当前函数不会再 进行任何修改会额外导出一个新的函数 我不想让原有功能变复杂。

WangJincheng4869 commented 9 months ago

了解了 这个功能会在下个版本进行支持 当前函数不会再 进行任何修改会额外导出一个新的函数 我不想让原有功能变复杂。

非常感谢,我用的是 7z 压缩软件,无法压缩成 gz。每次都是压缩成 zip。实施还要在服务器上安装 unzip,当服务器内网环境下很麻烦。

nonzzz commented 9 months ago

@WangJincheng4869 0.12.0 已经发布。

nonzzz commented 9 months ago

cp 不会提供过多的功能目前是基于archiver 这个库做了一个简单的tarball 我想足以应付大部分场景。支持更多的算法反倒是无意义的他只需要一个归档就够了 类unix的系统往往都自带解压和压缩tar的工具 这也是这个功能只做这么简单的考虑。