/ppfish-components

Fish Design: 面向B端设计的企业级UI组件库

Primary LanguageJavaScriptMIT LicenseMIT

Fish Design

Travis branch CI Status NPM downloads FOSSA Status

Introduction

Fish Design is an enterprise-class UI component library which based on React, helps designers and developers quickly build systems.

Features

  • Babel with ES6
  • Hot reloading
  • Testing
  • Linting
  • Working example app
  • Server side rendering

Browsers Support

  • Modern browsers and Internet Explorer 11+
IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
IE11, Edge last 2 versions last 2 versions last 2 versions last 2 versions last 2 versions

Initial Machine Setup

  • Install Node.js

  • (Optional)Install taobao NPM image

    $ npm install -g cnpm --registry=https://registry.npm.taobao.org

Install

npm install ppfish --save

Usage

Browser

import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from 'ppfish';

ReactDOM.render(
  <Button type="primary">Primary</Button>, document.getElementById('app')
);

Node.js SSR

const { renderToString } = require('react-dom/server');
const Button = require('ppfish/node/components/Button');
const http = require('http');

http.createServer((req, res) => {
    if (req.url === '/') {
        res.writeHead(200, {
            'Content-Type': 'text/html'
        });
        const html = renderToString(<Button type="primary">Primary</Button>);
        res.end(html);
    }
}).listen(8080);

Development

Install npm(or cnpm) package

$ npm install

Start development in your default browser

$ npm start

Open your browser and visit http://127.0.0.1:5000

Build

Build scripts and css etc.

$ npm run build

Build site

$ npm run build:site

Links

The directory structure

.
├── /coverage/                        # 运行npm run test:cover输出的测试覆盖率文件
├── /dist/                            # 构建输出的文件,使用全局变量方式引用,可用于发布到CDN
├── /docs                             # 文档
├── /es/                              # 构建输出的文件,使用ES Module规范引用,可用于tree shaking优化
├── /lib/                             # 构建输出的文件,使用commonjs规范引用
├── /node/                            # 构建输出的文件,适合node环境运行
├── /node_modules/                    # 第三方类库和工具
├── /site/                            # 页面入口文件
| ├── /assets                         # css、images等资源
| ├── /componentsPage                 # 组件库官网页面
| ├── /docs                           # 组件库官网文档
| ├── /locales                        # 组件库官网本地化文案
| ├── /pages                          # 组件库官网页面入口
| ├── /static                         # 组件库官网Demo使用的icon
| ├── /styles                         # 组件库官网页面样式
| ├── /index.html                     # 组件库官网html模板
| └── /index.js                       # 组件库官网入口文件
├── /source/                          # 应用源码
│ ├── /assets/                        # 可编译静态资源文件
│ ├── /components/                    # React components
│ ├── /typings /                      # 常量配置文件
│ └── /utils/                         # 工具函数
├── /tools/                           # 项目运行脚本
├── .babelrc                          # 
├── .editorconfig                     # 
├── .eslintignore                     # 
├── .eslintrc                         # 
├── .gitignore                        # 
├── .npmignore                        # 
├── .stylelintignore                  # 
├── .stylelintrc                      # 
├── .travis.yml                       # 
├── jets.config.js                    # 
├── package.json                      # 
├── postcss.config.js                 # 
├── README.md                         # 
├── tsconfig.json                     # 
├── webpack.config.dev.site.js        # 文档网站本地开发编译配置
├── webpack.config.prod.components.js # 组件源码生产环境编译配置
└── webpack.config.prod.site.js       # 文档网站生产环境编译配置