UNPKG

8.46 kBMarkdownView Raw
1<img src="http://tinper.org/assets/images/uba.png" width="120" />
2
3# 前端集成开发工具 - uba
4
5[![npm version](https://img.shields.io/npm/v/uba.svg)](https://www.npmjs.com/package/uba)
6[![Build Status](https://img.shields.io/travis/iuap-design/tinper-uba/master.svg)](https://travis-ci.org/iuap-design/tinper-uba)
7[![devDependency Status](https://img.shields.io/david/dev/iuap-design/tinper-uba.svg)](https://david-dm.org/iuap-design/tinper-uba#info=devDependencies)
8[![NPM downloads](http://img.shields.io/npm/dm/uba.svg?style=flat)](https://npmjs.org/package/uba)
9
10## 介绍
11
12`uba`采用微内核、多插件开发,它基于 `webpack` 封装的 `cli` 命令行工具,为了解决目前前端快速开发不足而打造,提供一站式项目脚手架、最佳实践初始化、本地服务调试、数据模拟、远程代理、资源编译、静态产出、性能优化等功能。 `uba`是一个前端开发工具,可以提供多种开发场景。 核心开发人员会在远端最佳实践仓库 [uba-templates](https://github.com/uba-templates) 进行更新和维护,当然也可以根据所需的样式和功能提供不同的模板。可以给使用开发者提供轻量、简单、便捷的开发体验,让开发者从复杂的配置中脱离出来,这些复杂而又不易初学者学习的内容,就交给我`uba`来解决吧!
13
14## 安装
15
16安装 [node.js](https://nodejs.org) 开发环境.(node > 6.x && npm > 2.x)。
17
18> 基于国内开源的囧境,可以使用淘宝的CNPM或用友集团内网卫老板荣誉出品的ynpm
19
20#### ynpm
21
22公司内网通过使用`ynpm`,实现快速下载包,减少下载等待时间。详情请 [点击](https://github.com/iuap-design/ynpm-tool)
23
24```bash
25$ npm install ynpm-tool -g # 安装内部NPM工具
26
27$ ynpm install uba -g # 安装 uba 速度飞快在内网下
28```
29
30#### cnpm
31
32你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
33```bash
34$ npm install -g cnpm --registry=https://registry.npm.taobao.org
35
36$ cnpm install uba -g
37```
38或者你直接通过添加 npm 参数 alias 一个新命令:
39```bash
40alias cnpm="npm --registry=https://registry.npm.taobao.org \
41--cache=$HOME/.npm/.cache/cnpm \
42--disturl=https://npm.taobao.org/dist \
43--userconfig=$HOME/.cnpmrc"
44
45# Or alias it in .bashrc or .zshrc
46$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \
47 --cache=$HOME/.npm/.cache/cnpm \
48 --disturl=https://npm.taobao.org/dist \
49 --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
50```
51
52#### npm
53
54首先进行工具命令的安装,需要安装到全局环境上使用,后面项目开发中,`uba`是可以依赖包形式NodeAPI开发使用。
55```bash
56$ npm install uba -g
57```
58稍等片刻安装结束后,输入下面命令来确定是否安装成功:
59```bash
60$ uba
61```
62然后会出现当然命令使用帮助,以及官方依赖的插件版本。看到如下界面就是安装初始化完毕!
63```bash
64Usage: uba <command> [options]
65
66
67Command:
68
69 install v0.0.17
70 init v0.0.51
71 plugin v0.0.4
72 server v0.0.20
73 build v0.0.4
74
75Options:
76
77 -h, --help output usage information
78 -v, --version output the version number
79```
80
81## 使用
82
831. 如何使用前端集成工具`uba`来快速创建一个基本脚手架:
84
85```bash
86$ uba init
87```
882. 使用`uba`插件`uba-init`来加载远端[uba-templates](https://github.com/uba-templates)最佳实践仓库下的可用的列表:
89```bash
90Available official templates:
91? Please select : (Use arrow keys)
92❯ template-react-multiple-pages - React多页应用脚手架
93 template-react-single-pages - React单页应用脚手架
94```
95可以通过小键盘的上箭头(↑)、下箭头(↓)来选择你需要的脚手架或基于业务的最佳实践项目,回车即可。
96
973. 输入你的工程项目名称,默认不输入的名字为“uba-boilerplate”,我们输入“uba-webpack”
98
99```bash
100? Please select : template-react-single-pages - React单页应用脚手架
101? boilerplate name : uba-webpack
102Downloading template-react-single-pages please wait.
103Boilerplate uba-webpack done.
104? Automatically install NPM dependent packages? (Y/n)
105Install NPM dependent packages,please wait.
106```
107
108下载完远端的脚手架或最佳实践后,`uba`会提示是否全自动安装依赖包,我们选择默认`Y`来继续。
109
110如果不选择的话后面也可以手动使用`npm install``cnpm install`去安装使用。
111
1124. 进入安装好的工程目录,并开启uba调试服务:
113
114```bash
115$ cd uba-webpack && npm run dev
116```
117
118开始调试服务是`uba`的插件`uba-server`的扩展能力。
119
120稍等片刻待`uba`就会自动打开你的默认浏览器显示页面的。并会打印一些工具日志,比如 数据模拟 代理访问等。
121
122```bash
123/******************** Start loading mock server ********************/
124
125[mock]:[/User/Get] to ./mock/api/user/get.json
126[mock]:[/User/Post] to ./mock/api/user/post.json
127[mock]:[/User/Put] to ./mock/api/user/put.json
128
129/******************** Mock server loaded completed *****************/
130
131
132/******************** Start dev server *****************/
133
134[uba] : Listening on port http://127.0.0.1:3000
135
136/******************** O(∩_∩)O *****************/
137```
138
1395. 需要构建静态资源发布的,需要执行下面命令即可:
140
141```bash
142$ npm run build
143```
144稍等片刻后,就会在项目目录内产出`dist`文件夹,里面就是我们需要的构建完的资源,是不是很简单:)
145
146以上就是基本使用的说明。
147
148## 命令
149
150```bash
1511. $ uba init # 拉取远端可用的脚手架和最佳实践
1522. $ uba server # 开启调试、代理服务、数据模拟服务
1533. $ uba build # 构建静态资源产出
1544. $ uba install <plugin name> # 安装uba的插件
1555. $ uba plugin # 创建uba插件
1566. $ uba -v # 查看当前版本
1577. $ uba -h # 查看帮助
158```
159一般开发不需要每个人都安装全局uba去初始化使用,团队内的核心开发人员初始化构建好项目后,参与开发者只需要安装`npm install`后,通过`npm run dev`开启调试服务、`npm run build`来构建项目即可。
160
161## 插件
162
163`uba`所包含的插件在[tinper-uba](https://github.com/tinper-uba)下维护、开发。
164
165`uba`的强大开发体验是离不开丰富多彩的插件的,之前拉取远端仓库是使用了`uba-init`插件所完成的,下面介绍一下`uba`家族的核心兄弟都有谁~
166
167- [uba-init](https://github.com/tinper-uba/uba-init) [![npm version](https://img.shields.io/npm/v/uba-init.svg)](https://www.npmjs.com/package/uba-init) - 一款可以帮助`uba`执行远程代码访问的能力,它基于`request`http请求方法去获得github的API数据,解析后把远端的数据展示给uba来操作,然后根据选择来最终下载到本地,然后安装使用。
168
169- [uba-server](https://github.com/tinper-uba/uba-server) [![npm version](https://img.shields.io/npm/v/uba-server.svg)](https://www.npmjs.com/package/uba-server) - 帮助`uba`来加载本地配置文件,包括数据模拟、代理访问、`webpack`配置 等一系列需要集成开发使用的功能,最终通过`webpack-dev-middleware`来运行整个调试项目。
170
171- [uba-build](https://github.com/tinper-uba/uba-build) [![npm version](https://img.shields.io/npm/v/uba-build.svg)](https://www.npmjs.com/package/uba-build) - 开发完毕后需要产出打包静态资源,该插件结合`webpack`核心打包功能,读取`uba`的配置文件最终产出我们需要上线的资源。
172
173- [uba-plugin](https://github.com/tinper-uba/uba-plugin) [![npm version](https://img.shields.io/npm/v/uba-plugin.svg)](https://www.npmjs.com/package/uba-plugin) - 当开发者的需求现有的插件无法满足实现等,我们需要自行开发插件来供`uba`来加载使用,本身开发插件是复杂的,需要有一系列规范才可以,该插件就是为了创造插件而生。
174
175- [uba-install](https://github.com/tinper-uba/uba-install) [![npm version](https://img.shields.io/npm/v/uba-install.svg)](https://www.npmjs.com/package/uba-install) - 自身插件不满足需求,那么需要来为`uba`安装一款插件,赋予它安装插件的能力,通过`uba install mock`这样来安装,`uba-install`插件就会去[npm](https://www.npmjs.com/search?q=uba)上去下载`uba-mock`去安装使用的。
176
177## to be continued