cuke(黄瓜), 常见的一种蔬菜, 希望这个项目也成为常见的一个依赖(虽然这是不可能的), 其中黄瓜也符合 这个组件库的 宗旨 : 即插即用 其次 cuke 谐音 (cool ke) 很酷的李金珂的 意思 主题色 采用 黄瓜绿, 清新又可爱, 组件借鉴(抄袭)了 有牌面的 Ant Design, 抱着学习的目的,开发了这个组件库
https://cuke-ui.github.io/cuke-ui/
使用 npm
npm i cuke-ui --save
使用 yarn
yarn add cuke-ui
测试版
yarn add cuke-ui@next
使用 cdn
<link rel="stylesheet" href="https://unpkg.com/cuke-ui@latest/dist/cuke-ui.min.css">
<script type="text/javascript" src="https://unpkg.com/cuke-ui@latest/dist/cuke-ui.min.js"></script>
- 全部引入
import React from "react"
import { Button } from "cuke-ui"
import "cuke-ui/dist/cuke-ui.min.css"
class Page extends React.Component {
render(){
return (
<Button type="primary">黄瓜ui</Button>
)
}
}
2 .按需引入
import Button from 'cuke-ui/lib/button';
import 'cuke-ui/lib/button/style.less';
// webpack.config.js
module.exports = {
...
module: {
rules: [
...
{
test: /\.jsx?$/,
use: [
{
loader: "babel-loader",
options: {
babelrc: true,
plugins: [
["import",{
"libraryName":"cuke-ui",
"style" : name => `${name}/style.less`
}],
]
},
},
}
]
}
}
计划2018年底完成,给自己一个交代
- Button 按钮
- Alert 警告提示
- Breadcrumb 面包屑
- Grid 网格布局
- Input 输入框
- Message 消息提示
- Modal 对话框
- Pagination 分页器
- Tooltip 文字提示
- TurnTable 抽奖转盘
- WordPad 手写输入板
- MusicPlayer 响应式音乐播放器
- Spin 加载中
- BackTop 回到顶部
- Progress 进度条
- Tabs 选项卡
- Badge 徽标数
- Dropdown 下拉菜单
- Drawer 抽屉
- Radio 单选框
- Container 包裹容器
- Affix 固钉
- Timeline 时间轴
- Checkbox 复选框
- Switch 开关
- Tag 标签
- CityPicker 城市选择框
- Collapse 折叠面板
- Select 下拉选择器
- DatePicker 日历选择框
- Notification 通知提醒框
- NumberInput 数字输入框
- Steps 步骤条
- Upload 上传
- Calendar 日历
- Popover 气泡卡片
- PopConfirm 气泡确认框
- Card 卡片
高仿 Ant-Design
- 勇敢的人
- 我自己
- 李金珂的小屋
基于webpack打包umd模块 , babel 打包es模块 , Gulp 打包css
yarn run build
输出
-
dist
cuke-ui.js
cuke-ui.min.js
cuke-ui.css
cuke-ui.min.css
-
lib
-
button
index.js
style.less
-
其他组件
index.js
-
请首先安装 npm i -g yarn
- 安装依赖
如果无法科学上网 可 使用 淘宝镜像 yarn config set registry https://registry.npm.taobao.org
git clone https://github.com/cuke-ui/cuke-ui.git
cd cuke-ui
yarn
- 启动开发服务器
基于 storybook 什么是storybook?
yarn dev
-
开发组件
参考
components/button
在 components
新建一个组件(组件名与文件名对应) 以 button
组件目录结构为例
- components
- button //组件文件夹
__tests__
//单元测试__snapshots__
// ui 快照index.test.js
//测试文件
index.js
//组件逻辑styles.less
//组件样式
- button //组件文件夹
然后 在 stories
目录下 新建一个 button.js
- stories
button.js
// storybook 的文档文件
//button.js
import React from 'react';
import { storiesOf } from '@storybook/react';
import Button from '../components/button'; //引入你的组件
import { withInfo } from '@storybook/addon-info';
storiesOf('示例标题', module)
.add('Button 按钮', withInfo()(() => ( // 添加到页面上
<Button type="primary">获取文字</Button> // 这里写jsx
)))
最后 将 写好的 storybook 文件 添加到 配置里面
.storybook > config.js
import { configure } from '@storybook/react';
function loadStories() {
require('../stories/button'); //刚才写好的文件
}
configure(loadStories, module);
这样就完成了 storybook
会将你写好的组件 添加到页面上, 并且会自动生成说明文档 (其实本质上就是一个 webpack 的 dev-server)
最后的最后, 在 components/index.js
导出组件,以便于发布
export { default as Button } from "./button";
覆盖率
yarn coverage
单元测试
yarn test
watch
yarn test -- --watch
yarn lint
打包文档
yarn build:docs
发布文档
yarn pub:docs