UNPKG

7.39 kBMarkdownView Raw
1<h1 align="center"><img src="/doc/assets/images/gupack-128.png" alt="gupack" /><br /><br /></h1>
2
3[![Build Status](https://travis-ci.org/RodeyManager/gupack.svg?branch=master)](https://travis-ci.org/RodeyManager/gupack)
4[![npm Status](https://img.shields.io/npm/v/gupack.svg)](https://www.npmjs.com/package/gupack)
5
6### 安装
7
8```javascript
9 npm install -g gupack
10```
11
12### 命令使用参数
13
14**使用帮助查看命令:gupack -h**
15
16 -p, --project 指定当前编译的项目
17 -d, --dest 指定编译后的输出路径
18 -e, --env 设置环境
19 -s, --server 是否启动内置静态服务器
20 -o, --open-browser 启动内置静态服务器是否打开默认浏览器
21 -t 指定编译任务
22 -T, --template 新建项目时指定模板
23 -c 清理编译目录
24 --host 服务器主机
25 --port 服务器端口
26 --liveDelay 热更新延迟时间,单位ms
27 -v, --version 查看当前版本号
28
29### 命令
30
31 new <projectName> 创建项目;
32 --auto-install: 新建项目后自动安装npm相关依赖模块
33 -T --template: 选择项目模板
34 task <taskName>(可选) 编译指定任务;
35 build [<projectName>] 编译项目;
36 -e, --env <env> 指定编译环境,(local:本地; dev:开发; stg:测试; prd:生产)
37 -d, --dest <destPath> 指定编译输出目录
38 -t <taskName> 指定编译任务(gupack build -t js+css -e dev)
39 -c 编译前清空编译路径下的所有文件
40 -s, --server 是否启动内置静态服务器(热更新)
41 start 启动内置Node静态服务器; -o, --open-browser 启动内置静态服务器是否打开默认浏览器
42 backup 备份项目;
43 rollback 回滚项目(依赖于备份列表);
44 clean 清空编译路径下的所有文件;
45 remove <projectName> 从本地磁盘中删除(谨慎执行(u_u));
46 alias <name> 为gupack设置一个全局命令别名;
47 versions 查看相关版本;
48
49### 使用说明
50
51new【新建项目】
52
53```javascript
54 // 新建项目将提示选择对应的模板
55 gupack new <projectName>
56 // 指定项目模板(gupack listTemplate 查看项目模板)
57 gupack new mall --template <templateName>
58 // 项目编译主要已gulp为基础
59```
60
61build【编译项目】对项目进行编译
62
63```javascript
64 gupack build -e <envName>
65 //编译项目可带命令参数,请查看[命令参数]
66```
67
68task【编译指定任务】
69
70```javascript
71 gupack task <taskName>
72 //未指定,将显示任务列表提示选择
73```
74
75start【启动项目】运行 gupack 自带的静态文件服务器,便于本地调式项目(包括浏览器实时更新功能)
76
77```javascript
78 gupack start <projectName>
79 //编译项目可带命令参数,请查看[命令参数]
80```
81
82publish【发布项目】
83
84```javascript
85 gupack publish <projectName>
86 //如果在gupack-config.js中配置了statics选项,则publish后,项目中的所有连接地址都会加上statics中对应配置地址
87```
88
89## gupack-config 项目配置(Object)
90
91* `env`:String, 当前编译环境(本地(默认):local; 开发:dev; 测试:stg; 生产:prd)
92* `sourceDir`:String, 源文件路径, 默认为项目下的 src
93* `buildDir`:String, 编译产出路径,可以是绝对或者相对路径,默认项目下的 dist
94* `port`:Number, 本地开发 Node 调式服务器端口
95* `liveDelay`:Number, 浏览器实时更新延迟时间
96* `buildTasks`:Object, 项目编译任务列表 [请查看单个任务相关配置](task)
97* `statics`: Object, 发布部署 CDN 相关配置
98* `proxy`: Object | String, 代理, [Options](https://www.npmjs.com/package/http-proxy#options)
99* `deploy`: Array, 发布部署服务器相关配置(支持多节点上传)
100* `startClean`: Boolean, 编译项目前是否清空编译目录
101* `indexFile`: String, 启动内置 Node 静态服务器,默认打开的首页,相对于 buildDir 路径
102
103## buildTask 单个任务相关配置(Object)[name="task"]
104
105* `src`:String or Array, 当前任务编译源码(支持 glob)
106* `dest`:String, 当前任务源码编译后目录
107* `filter`:Array, 过滤列表(支持 glob)
108* `watch`:Array, 监听列表(支持 glob)
109* `nowatch`:Boolean, 是否监听文件按变化触发任务执行
110* `rely`:Array, 当前任务所依赖的任务列表
111* `loader`: Object, 任务流(gulp 插件)相关配置
112* `run`: Boolean, 是否执行当前任务
113* `before`: Function, 任务执行前
114* `after`: Function, 任务执行后
115
116## statics 相关配置(Object)
117
118* `testExt`:regexp, 需要匹配替换的文件后缀(exp:/^\.(html|tpl|jade|md|css|scss|less|styl|vue|jsx)[^\.]\*$/i,)
119* `hostname`:String, 主机
120* `nodes`:Array, 分散节点,例如需要对图片、视频或者 js 和 css 做不同的 CDN 配置,包含独立的匹配模式
121
122 exp:
123 {
124 extname: /^\.(png|jpg|jpeg|gif|svg|bmp|ico|webpng)[^\.]*$/i,
125 pathname: 'pic',
126 hostname: 'http://image.cdn.com'
127 },
128
129## deploy 相关配置(Object | Array)
130
131* `isExecute`:Boolean,是否执行部署,默认 false
132* `host`:String, 服务器主机
133* `port`:Number, 服务器端口,默认:22
134* `user`:String, 用户名
135* `pass`:String, 密码
136* `timeout`:Number, 发布上传超市时间,默认:50000
137* `localPath`: String, 上传的本地目录,默认:项目编译后的目录(支持 glob)
138* `remotePath`: String, 远程服务器目录
139* `filters`: Array, 发布上传中需要过滤的文件(支持 glob)
140* `type`:String, 部署方式("full"全量;"increment"增量),默认:full
141* `isRollback`:Boolean, 执行 rollback 命令时,当前节点是否执行回滚(可设置某节点不回滚)默认保存回滚
142* `onUploadedComplete`: Function, 发布完成事件回调
143* `onUploadedFileSuccess`: Function, 文件发布成功事件回调
144* `onUploadedFileError`: Function, 文件发布失败事件回调
145* `backup`: String | Object | Array, 发布之前进行备份 [options](https://github.com/RodeyManager/gupack/blob/master/doc/gupack-config.html)
146
147## backup 相关配置(Object | Array)backup 的认证信息目前依赖与当前 deploy 节点配置
148
149* `isExecute`:Boolean,是否执行部署,默认 true
150* `outPath`:String, 备份输出路径
151* `mode`:String, 备份模式,local: 备份到本地; remote: 备份到当前 deploy 节点服务器上,默认:local
152* `log`:String, 打印方式,all: 打印详细信息; progress: 简单的进度条,默认:all
153* `filters`: Array, 备份中需要过滤的文件或者目录
154
155更多认证参数请参考 [ssh2](https://github.com/mscdex/ssh2)
156
157## [gupack-config.js](https://github.com/RodeyManager/gupack/blob/master/doc/gupack-config.js) 文件配置实例
158
159#License
160[MIT License](https://en.wikipedia.org/wiki/MIT_License)