站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

手把手带你使用node开发一个命令行压缩工具

时间:2022-06-08 [网络编程]作者:fabuyuan 浏览:5 次

本篇文章给大家分享一个node实战,手把手带你使用node开发一个命令行压缩工具,希望对大家有所帮助!

hello,最近写了一个压缩文件的命令行工具,今天分享给大家。

起因

  • 由于前公司一些不可抗的情况,最近换了工作,吃饭的家伙也从Mac转成了Win,之前用Mac的时候,习惯了终端操作,现在用Win,感觉不是很适应,尽管Win自带的 powershell 也很强大。

  • 工作中开发的项目在测试的时候需要先压缩成压缩包,再上传到对应的桌面应用测试。

  • 在网上下载的压缩软件大都捆绑的有广告,hen~烦

  • powershell 的压缩命令太长了,用起来不方便,并且桌面应用ide升级之后,通过 Compress-Archive 压缩的文件不能被正确的解析。

  • 最后一个原因,我不想再去学 powershell 的指令了!!!

综合上述的原因,我用nodejs写了一个压缩工具 fzip

对比

来跟 Compress-Archive 做一下对比

  • 使用 fzip 压缩
fzip -f ./test
  • 使用 Compress-Archive 进行压缩
Compress-Archive -Path ./test -DestinationPath ./test.zip
# 解释一下参数
# -Path 来源
# -DestinationPath 输出位置

上边两条指令都会将当前目录下的test目录压缩成一个zip包,但是使用 powershell 的指令真的很长啊有木有!

当然了,fzip 也是支持指定输出位置和命名压缩包的,不仅如此,还支持设置压缩等级!下边会有详细的文档供您食用!

使用方法

  • 使用 npm 安装
npm install @lxqddd/fzip -g
  • 使用 yarn 安装
yarn install @lxqddd/fzip -g
  • 使用 pnpm 安装
pnpm install @lxqddd/fzip -g

参数说明

参数参数来源参数注解
-fFrom压缩目标来源(必选)
-oOutput压缩产物输出位置(可选,不传则为来源同级目录)
-lLevel压缩级别 0~9(可选,不传则默认为 6)
-nName压缩包名称(可选,不传则默认为文件或目录的名字)

使用示例

.
├── LICENSE
├── README.md
├── gulpfile.js
├── package.json
├── src
│   ├── cli.ts
│   ├── core
│   │   └── index.ts
│   ├── types
│   │   └── index.ts
│   └── utils
│       └── index.ts
├── tsconfig.json
└── yarn.lock
  • 基础用法
# 指令执行之后会在 `src` 的同级目录输出一个 `src.zip` 的压缩包
fzip -f ./src
  • 指定输出位置
# 指令执行之后会在桌面上输出一个 `src.zip` 的压缩包
fzip -f ./src -o ~/Desktop
  • 指定压缩等级
# 压缩产物的压缩级别为 9
fzip -f ./src -o ~/Desktop -l 9
  • 重命名
# 指令执行之后会在 `src` 的通级目录下输出一个名为 `test.zip` 的压缩包
fzip -f ./src -n test

上边说的都是压缩目录的,也可以压缩单个文件,使用方法类似,只需要将输入路径指向被压缩的目标文件即可

  • 压缩单个文件
# 指令执行之后会在桌面输出一个名为 `test.zip` 的压缩包
fzip -f ./src/cli.ts -o ~/Desktop -n test -l 9

项目地址:https://github.com/lxqddd/FZip

如果你觉得写的不错的话,欢迎三连~

更多node相关知识,请访问:nodejs 教程!

以上就是手把手带你使用node开发一个命令行压缩工具的详细内容,更多请关注站长家园其它相关文章!

本文标签:  nodejsnodeNode.js

转载请注明来源:手把手带你使用node开发一个命令行压缩工具

本文永久链接地址:https://www.adminjie.com/post/13231.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • translate是css3属性吗

      translate是css3属性吗

      translate是css3的一个新的css属性;translate属性用于定义元素的2d平移转换,该属性常与transform属性配合使用,transform...

    • 浅析Angular中的独立组件,看看怎么使用

      浅析Angular中的独立组件,看看怎么使用

      本篇文章带大家了解一下Angular中的独立组件,看看怎么在Angular中创建一个独立组件,怎么在独立组件中导入已有的模块,希望对大家有所帮助!Angular...

    • link是不是css3新增样式规则

      link是不是css3新增样式规则

      link不是css3新增样式规则。“:link”是在css3之前就已经可以使用的选择器,可以用于设置链接的样式,该选择器用于选取未被访问的链接,不会设置已经访问...

    • css3动画是个软件吗

      css3动画是个软件吗

      css3动画不是软件,css动画是使元素逐渐从一种样式变为另一种样式,是通过css配合html语言来实现的;css动画的本质是动画属性可以逐渐地从一个值变化到另...

    • css3支持border属性吗

      css3支持border属性吗

      css3支持border属性,该属性从css1时就已经开始支持了;border属性是边框属性的简写属性,可以用于指定元素边框的样式、宽度和颜色,属性值只设置一个...

    热门文章