项目作者: wangnan1305

项目描述 :
react-datepicker
高级语言: CSS
项目地址: git://github.com/wangnan1305/react-repository.git
创建时间: 2018-06-26T08:13:57Z
项目社区:https://github.com/wangnan1305/react-repository

开源协议:

下载



order: 0

title: 介绍

介绍

安装

开发

目录结构

  1. .eslintrc //eslint配置
  2. .gitignore
  3. .prettierrc //prettier配置
  4. index.js //入口文件
  5. ├───build-tools //构建脚本,webpack配置文件等
  6. ├───dist //打包输出的文件夹
  7. |
  8. |───site_dist //打包输出文档站的文件夹
  9. ├───site //文档页面
  10. bisheng.config.js //bisheng配置文件
  11. └───theme //文档页面模板
  12. ├───src //组件源代码
  13. index.js //入口文件
  14. ├───helloworld //helloworld组件
  15. └───timer //timer组件
  16. └───_site //开发环境下文档页面临时文件夹

Dev Server

安装与启动

  1. $ npm install
  2. $ npm start

开发服务器通过bisheng调用webpack-dev-server启动,bisheng是一个用于将markdown文件转化为基于React的网页应用的工具

bisheng配置可以修改配置文件/site/bisheng.config.js/site/theme/index.js,具体配置文档参见https://github.com/benjycui/bisheng

webpack-dev-server配置可以修改配置文件 /build-tools/webpack.dev.config.js

Dev Server将启动文档页面,可以以文档DEMO的形式引入开发中的组件进行调试

生成组件目录

当需要添加新组件时,可以通过

  1. $ npm run gen -- component_name

来生成统一的目录结构,并且会初始化相关文件,自动添加导出语句至组件入口/src/index.js

通过-C参数阻止写入默认文件内容,只生成空白文件,如npm run gen -- component_name -C

生成组件的目录结构如下

  1. index.js //组件入口
  2. ├─doc
  3. readme.md //组件文档
  4. └─demo
  5. basic.md //一个基本用法的DEMO
  6. ├─style
  7. index.scss //组件样式
  8. └─test
  9. index.test.js //测试用例

组件目录结构主要要求文档目录保持规范,doc/readme.md必须且唯一的组件文档,doc/demo/DEMO文件夹默认只生成了基本示例的DEMO文件,可以根据需求添加更多示例DEMO

组件js、css及其它资源文件可以根据需求拆分更多子文件,保证index.js入口文件及引用正确即可

编写文档

组件的文档都以markdown文件形式编写,由bisheng/site/bisheng.config.js配置中source目录下所有markdown文件转化为JsonML格式数据传给页面模板,由页面模板根据数据生成文档页面

组件文档

组件文档的路径为组件目录下doc/readme.md,一个Helloworld组件的文档文件示例如下

  1. ---
  2. category: Components
  3. title: Helloworld
  4. subtitle: 欢迎组件
  5. cols: 1
  6. ---
  7. ## 何时使用
  8. 欢迎
  9. ## API
  10. | 参数 | 说明 | 类型 | 默认值 |
  11. | ---- | ---- | ------ | ------ |
  12. | name | 名称 | string | - |

头部由---分隔的区域为YAML格式的文档的meta信息,组件文档文件(doc/readme.md)的meta信息包括

  • category 组件类别,用于导航菜单中的分类,统一使用Components

  • title 组件英文名称,必须

  • subtitle 组件中文名称

  • col 传递给文档页面模板的分栏参数,统一使用1

接下来为组件文档,根据需求以markdown格式书写

## API下为组件API接口表格,可按格式添加参数说明

组件DEMO

组件DEMO统一放在组件目录doc/demo/目录下,该目录下的所有DEMO文件会自动插入组件文档中API接口表格上方位置,一个Helloworld组件的基本使用方法DEMO示例如下

  1. ---
  2. order: 0
  3. title:
  4. zh-CN: 基本使用
  5. en-US: Basic
  6. ---
  7. ## zh-CN
  8. 输出Hello, world
  9. ```jsx
  10. import { Helloworld } from 'react-components-demo'
  11. ReactDOM.render(<Helloworld name='world' ></Helloworld>, mountNode)
  12. ```

DEMO文件的meta信息包括

  • order 次序,用于DEMO文件夹下所有DEMO的排序

  • title.zh-CN DEMO中文标题

  • title.en-US DEMO英文标题

标题字段留空可能引起格式转换错误,建议都填写

DEMO文件中通过```jsx ... ``` 编写代码示例,代码会自动编译生成组件示例并提供源码展示,可以直接使用库名导入组件

Tips

  • 通过修改package.json中的nameversion字段修改打包的包名称与写入的版本信息,同时也可以在DEMO中通过import { component_name } from packge_name引入开发中的组件

  • webpack中配置了@别名指向/src/目录,可以方便从公共资源文件夹导入资源等

  • jsx中通过如img标签的src属性引入本地图片等资源时,打包后图片路径为相对组件库js文件的路径,导致无法在业务项目中正常引用,因此所有在js文件import的图片等文件资源将强制转换为base64形式,应避免在jsx中引入过大的本地资源,或改为使用css background-image等形式引入

测试

待完善

发布

发布组件库

  1. $ npm run build

使用的webpack配置为/build-tools/webpack.prod.config.js

发布文档站

  1. $ npm run site

使用的webpack配置为bisheng提供的默认配置,并做了修改,bisheng的默认配置可参见/node_modules/bisheng/config/getWebpackCommonConfig.js/node_modules/bisheng/config/updateWebpacCommonConfig.js,并在/site/bisheng.config.js中对webpack配置进行修改