vue-webpack项目自动打包压缩成zip文件批处理

为什么需要这个?

使用vue框架开发项目,npm run build这个命令会一直用到,如果需要给后端发包,那你还要打包成zip格式的压缩包,特别是项目提测的时候,一天可能要执行重复好几次,所以才有了写这个批处理的冲动。

虽然说以前没写过,但至少用过。找了份批处理命令的文章了解了下,按自己预先想好的思路,百度了关键的执行命令,然后就自己不断的修改调试,最终完成了这个集webpack打包、压缩成zip格式文件、打开当前文件夹这三个功能的批处理。

怎么用?

只需要把这个批处理文件放在项目根目录下,轻松一点,等命令自行运行完毕打开文件夹,就可以直接复制打包后的压缩包给后端人员了。

完整代码:

title 项目自动打包压缩批处理工具
cls
@echo off
echo  ┌────────────────────────────────────┐
echo.
echo   vue+webpack 项目自动打包压缩批处理工具
echo.
echo   author:cuichunhua@qq.com
echo.
echo   功能说明:
echo.
echo   1.vue+webpack项目自动打包
echo.
echo   2.打包完成之后会自动压缩为zip文件,自定义名称
echo.
echo   3.压缩完成,在资源管理器中自动打开当前文件夹
echo.
echo  └────────────────────────────────────┘
echo.

rem 1. vue项目打包
echo  即将进行打包处理,请稍后。。。
echo.
call npm run build

rem 返回代码为>=1就跳至标题1处执行压缩,>=0就跳至标题exit处执行终止

IF ERRORLEVEL 1 (
    echo  项目打包出错了,快去看看怎么回事吧!!!
    echo.
    goto exit
)
IF ERRORLEVEL 0 (
    echo  打包完成,自动压缩中。。。
    echo.
    goto zip
)

rem 2. 自动压缩成zip文件,并以code_yyMMddhhmmss格式
:zip
echo  开始压缩文件。。。
echo.
cd /d dist
rem 打包成zip格式文件就需要WinRAR.exe,不然会报"未知选项:afzip"
set rar=%ProgramFiles%\WinRAR\WinRAR.exe
set name=code_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
(echo static
echo index.html)>R.lst
"%rar%" a -afzip "%name%.zip" -ep1 -rr -av -ao -m5 @R.lst -ibck -xR.lst
del R.lst
goto 2

rem 3. 自动打开当前文件夹
:2
echo  压缩完成,自动打开当前文件夹。。。
echo.
explorer %cd%
goto exit

rem 4. 终止命令继续执行
:exit
pause

代码说明:

这个批处理主要有三个处理过程:

1. vue项目打包;

1)使用call来执行npm run build,这样打包处理之后就不会自动退出命令行窗口,后续命令才能执行,切记切记。

2)处理结果处理:

IF ERRORLEVEL 1 (
    echo  项目打包出错了,快去看看怎么回事吧!!!
    echo.
    goto exit
)
IF ERRORLEVEL 0 (
    echo  打包完成,自动压缩中。。。
    echo.
    goto zip
)

去除多余代码,上边代码可以精简为:

IF ERRORLEVEL 1 goto exit

IF ERRORLEVEL 0 goto zip

这段代码的意思是:如果上一步命令执行失败,则执行exit命令块,成功则执行zip命令块。

其中:

  • ERRORLEVEL 为上一个命令执行结果,成功返回0,失败默认返回1;
  • IF ERRORLEVEL 1  的意思是 如果 ERRORLEVEL >= 1,所以判断失败的命令要放在判断成功的命令之前,不可颠倒,切记!
  • exit、zip可以理解为命令块,类似js中的函数代码块,这个命令块是以:开头定义的,如 :exit ,这就是一个简单的命令块;
rem 4. 终止命令继续执行
:exit
pause

2. 压缩成zip文件;

   这里的关键代码如下:

cd /d distset rar=%ProgramFiles%\WinRAR\WinRAR.exe
set name=code_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
(echo static
echo index.html)>R.lst
"%rar%" a -afzip "%name%.zip" -ep1 -rr -av -ao -m5 @R.lst -ibck -xR.lst
del R.lst

其中:

  • set rar=%ProgramFiles%\WinRAR\WinRAR.exe  很明显,这行代码是定义压缩程序变量;
  • set name=code_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%  这一行是定义压缩文件名称,默认code_yyyyMMddhhmmss格式,可以根据需要自行修改,%date:~0,4%为截取本机日期的年份,%time:~0,2%为截取本机时间的小时,记住写法,可以用js的截取字符串辅助理解;
  • 下面这行是指定导报目录或文件:
  • (echo static echo index.html)>R.lst
  • -afzip  是压缩成zip格式文件(配合rar变量要指向WinRAR.exe才生效)
  • "%name%.zip"  以变量name命名的 

3. 打开当前文件夹(dist)

  explorer %cd%  在资源管理器中打开当前文件夹,方便将压缩后的打包文件发送给其他开发人员

原文地址:https://www.cnblogs.com/xyyt/p/9238885.html

时间: 2024-08-12 13:15:05

vue-webpack项目自动打包压缩成zip文件批处理的相关文章

linux下压缩成zip文件解压zip文件

linux  zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径] linux  zip命令参数列表: -a     将文件转成ASCII模式 -F     尝试修复损坏的压缩文件     -h     显示帮助界面 -m     将文件压缩之后,删除源文件 -n 特定字符串    不压缩具有特定字尾字符串的文件 -o     将压缩文件内的所有文件的最新变动时间设为压缩时候的时间 -q     安静模式,在压缩的时候不显示指令的执行过程 -r     将指定的目录

压缩成zip文件并通过curl上传

class test{ //curl上传 function testPost(){ $url = "http://liling.gov.gsp365.cn/Api/Upload/postFile"; $file = 'D:\phpStudy\WWW\testcurl\json.zip'; $data = array( 'username' => 'test', 'pwd' => '123456', 'uploadFile' => new CurlFile($file)

IOS开发—图片压缩/解压成Zip文件

图片压缩/解压成Zip文件 本文介绍如何将图片压缩成Zip文件,首先需要下载第三方库ZipArchive 并导入项目中. ZipArchive 库地址:https://github.com/mattconnolly/ZipArchive 一.文档结构: 二.准备工作: 1.框架导入: 2.ZipArchive.m文件使用非ARC机制 三.代码示例: // // ViewController.m // UnzipImgDemo // // Created byLotheve on 15/4/10.

vue+webpack项目结构介绍

对vue已经有了一定的了解,所以希望可以在github上找到一些项目实践,但是无奈不知道vue的整体架构是如何的,往往不知道该如何着手看,所以这里在网上找了相关的文章作为参考,对结构有一个大致的了解.参考文章如下: 用vue+webpack搭建的前端项目结构 vue+webpack项目实践 这里插一句话,搜索谷歌做的确实好,支持原创,搜索精准,不知道比度娘高到哪里去~

asp.net 把图片压缩成zip之后再进行下载

//这是导出的js方法 function fundaochu() { var data = "keyword=GetImageListdaochu&type=daochu&modality=" + $(eventRow).attr("study_date") + "&strWhere=a.REGISTRATION_ID=" + $(eventRow).attr("reg_id") + " an

如何让SQL Server数据库自动备份并压缩成rar文件

1.  先开启xm_cmdshell服务 xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出.由于xp_cmdshell 可以执行任何操作系统命令,所以一旦SQL Server管理员帐号(如sa)被攻破,那么攻击者就可以利用xp_cmdshell 在SQL Server中执行操作系统命令,如:创建系统管理员,也就意味着系统的最高权限已在别人的掌控之中.由于存在安全隐患,所以在SQL Server 2005中, xp_cmdshell

Java打包文件目录问 zip文件

Java打包文件目录问 zip文件. /** * 资源打包下载类 * Created by Ruan Banshu on 2015/4/13. */ public class ZipOpUtil { private static Logger logger = LoggerFactory.getLogger(ZipOpUtil.class); /** * 将多个文件打包到一个zip中 * * @param sourceFolder * @param zipFile * @return */ pu

Maven 项目不打包 *.hbm.xml 映射文件

使用 Maven 部署 Java Web 项目时,Hibernate 的映射文件 *.hbm.xml 没有被打包部署到目标目录下,解决方法:在 pom.xml 文件中 <build> 节点下添加以下代码: 1 <build> 2 …… 3 <resources> 4 <resource> 5 <directory>src/main/java</directory> 6 <includes> 7 <include>

【原创】从零开始搭建Electron+Vue+Webpack项目框架(五)预加载和Electron自动更新

导航: (一)Electron跑起来(二)从零搭建Vue全家桶+webpack项目框架(三)Electron+Vue+Webpack,联合调试整个项目(四)Electron配置润色(五)预加载及自动更新(六)构建.发布整个项目(包括client和web)(未完待续) 摘要:到目前为止,我们的项目已经具备了PC客户端该有的一些基础功能和调试环境,但是总感觉缺了灵魂,那就是结合实际项目.实际业务的细节处理,缺着吧...这篇文章就介绍一下预加载和自动更新,文字功底有限,如有介绍的不清楚的地方,欢迎留言