最近一段时间一直在做桌面混合应用,跟以往做web端不同的是,无法再通过在浏览器上输入内部的域名来随时跟踪开发版本的状况了,只能通过打包代码让产品或领导随时跟踪进度。

这里就涉及到一些问题了:

1,需要打包成zip文件便于传输

2,需要排除一些仅是开发中需要的文件,如node_modules,一些不必要的config等

然后,首当其冲gulp,关于gulp和grunt的比较,流式(stream)操作比较快之类的云云就不多废话了。

一,生成zip文件

使用gulp-zip插件

首先是安装

npm install gulp -g
npm install gulp gulp-zip --save-dev

这里存在两个问题:

  1. 为什么要装两次gulp,一次全局一次本地?全局安装是为了随时随地可以在命令行中使用gulp,命令行并不认识local安装的gulp命令,本地安装是为了维护你当前的项目所依赖的gulp版本,且本地运行更快,当然如果你实在不爽两地安装或者到发布环境再去全局安装gulp显得很多余,你当然可以这样做,在项目根目录下的package.json中这样写:

    {
    ...//此处省略100行
    "main": "src/js/index.js",
    "scripts": {
    "zip": "gulp zip"
    },
    ...//此处省略100行
    }

    如此就可以不用全局安装gulp了,因为npm-script会自动到local的node_modules目录中查找到gulp命令。

  2. 为什么使用--save-dev而不用--save?是因为该插件仅为开发所依赖,不为使用所依赖,说白了就是只有开发者才需要用这个插件,使用者是不需要的,所以使用--save-dev。

安装完了之后,就开始编写gulpfile.js(如果要使用es6语法,需改名为gulpfile.babel.js,并需安装babel,题外话,不展开):

const gulp = require('gulp');
const zip = require('gulp-zip'); gulp.task('zip', function() {
return gulp.src('**/*.*')
.pipe(zip('test.zip'))
.pipe(gulp.dest('export'));
});

gulp的使用问题不在这里赘述。然后就可以在根目录下运行

gulp zip

或使用npm-script方式

npm run zip

然后就在export/下能看到你导出的test.zip文件,里面包含了根目录下的所有文件。

二,排除某些不需要的目录和文件

一些常见的需要排除的目录有node_modules,本地config等,gulp.src提供了强大的路径匹配,我们都知道src能接受数组来做多个匹配。

一开始你可能会这样写:

gulp.src(['!**/node_modules/**/*.*','!config/**/*.*'])

然后就出错了:Error: Missing positive glob

原来反匹配在gulp.src中是不可以写在第一位的,第一项一定是正匹配,于是这样写:

gulp.src(['**/*.*','!**/node_modules/**/*.*','!config/**/*.*'])

一切大吉了,压缩出来的文件不包含这些文件夹里的东西了。也许你要问,就排除个文件夹,为什么不能直接写**/node_modules?据我实验下来,这边过滤的只能是文件而不是一个路径,如果你只写路径,是没有效果的,必须匹配到该路径下的所有文件。

使用gulp在开发过程中合理导出zip文件的更多相关文章

  1. flash 中无法导出swf文件的解决方法

    近一个星期,我的flash cs6一直导不出swf文件,郁闷了好长时间,今天终于在网上找到了解决办法:总结了一下,如下:      一.是把文字打散,变成形状.      二.是把汉字的字体设成fla ...

  2. mysql中导入导出sql文件

    1.导出整个数据库: mysqldump -u用户名 -p密码 数据库名 > 导出的文件名 例:mysqldump -uroot -proot user > user.sql 2.导出一个 ...

  3. 在ASP.NET中实现压缩多个文件为.zip文件,实现批量下载功能 (转载并优化处理篇)

    转自:http://blog.csdn.net/yanlele424/article/details/6895986 这段时间一直在做一个网站,其中遇到了一个问题,就是在服务器端压缩多个服务器端的文件 ...

  4. 通过javascript在网页端解压zip文件并查看压缩包内容

    WEB前端解压ZIP压缩包 web前端解压zip文件有什么用: 只考虑标准浏览器的话, 服务器只要传输压缩包到客户端, 节约了带宽, 而且节约了传输时间, 听起来好像很厉害的说:     如果前端的代 ...

  5. jxl导出Excel文件

    一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...

  6. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  7. Android Zip文件解压缩代码

    2011-04-01 17:58:52|  分类: Android |举报 |字号 订阅   在Android平台中如何实现Zip文件的解压 缩功能呢? 因为Android内部已经集成了zlib库,对 ...

  8. C# 利用ITextSharp导出PDF文件

    最近项目中需要导出PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  9. ASP.NET Core导入导出Excel文件

    ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...

随机推荐

  1. getimagesize函数介绍

    getimagesize(); 返回结果说明 索引 0 给出的是图像宽度的像素值 索引 1 给出的是图像高度的像素值 索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 ...

  2. 搬瓦工vps搭建vpn

    一.下载centos6一键安装包 wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/maste ...

  3. File System Shell

    Overview appendToFile cat chgrp chmod chown copyFromLocal copyToLocal count cp du dus expunge get ge ...

  4. 黑马程序员——vim编辑器的使用

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.基本操作 1.从命令提示符进入vim编辑器:   vim filename <ENTE ...

  5. MyEclipse10

    1.配置tomcat Windows->Preferences->My Eclipse->Servers->Tomcat,对于64位操作系统而言,Tomcat home dir ...

  6. bzoj 2734: [HNOI2012]集合选数 状压DP

    2734: [HNOI2012]集合选数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 560  Solved: 321[Submit][Status ...

  7. SVN ignores

    在windows下面用SVN 用命令行不是很方便,dos很烦的,所以一般都会用tourist svn mac下牛人都喜欢直接敲命令行,比如svn co http:// 等等.. 不过为了看得清楚,有必 ...

  8. PHP 如何安全的使用 MySQL ?

    大多数 PHP 程序员对 MySQL 肯定不陌生,至于各种 MySQL 函数的用法在开发手册和 w3school 这类网站上也有很多介绍.但是,你所用的写法真的安全吗?面对越来越猖獗的黑客攻击,SQL ...

  9. (转)Mono for Android 优势与劣势

    最近有兴趣了解一下Mono for Andriod,也就是使用.NET平台来开发Andriod程序.Mono for Android API 几乎映射标准的Andriod API.例如,两边API几乎 ...

  10. Storm on Yarn 安装配置

    1.背景知识 在不修改Storm任何源代码的情况下,让Storm运行在YARN上,最简单的实现方法是将Storm的各个服务组件(包括Nimbus和Supervisor),作为单独的任务运行在YARN上 ...