UNPKG

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