edge-design
v0.0.11
Published
Basic UI component based on ant-design
Downloads
6
Maintainers
Readme
edge-design - 锋线 React 基础组件库
开发
文档
命令
- compile:构建 edge-design 组件库
lib
和es
部分。使用gulp
打包 - dist:构建 edge-design 组件库的
dist
部分。基于compile
命令生成的lib
使用webpack
构建dist
- build:构建 edge-design 组件库 package。调用了
compile
和dist
命令,生成的 package 会在 CI/CD 中 publish,项目安装的 edge-design 内就是这个 package - gen-comp:生成新组件目录的命令行工具
- rm-comp:移除组件目录的命令行工具
上述均为可在组件库项目(packages/edge-design 目录下)中单独执行的命令,其中
compile
、dist
、build
在 incisive-edge lerna 总线项目中实现了批量处理,gen-comp
和rm-comp
仅支持在组件库项目下执行
预览
http://vrnode:8890
安装
更新 npm@7
更新 npm 到 7.0 以上版本:
# 必要情况加sudo
npm i npm@7 -g
和之前版本不同,npm@7 会对依赖版本进行严格检查,并且会自动安装 peerDependencies,项目中如保留了 npm@7 的 package-lock.json,使用之前版本的 npm 进行安装会出现 peerDependencies 声明的依赖找不到的情况,这是有两种方法:1. 升级到 npm@7 后安装 2. 删除 package-lock.json 重新安装。强烈建议采用第 1 种方法解决
切换 npm 源
检查.npmrc
是否复制到项目根目录,如没有可从react-cli中复制。也可以直接切换本地 npm 源到内部源
npm config set registry http://vrnode:4000/
安装 edge-design
安装前需要清楚项目内是否安装了 antd4.x,为保证项目中不会存在多个 antd4.x 版本,如有安装,请先卸载。
npm uninstall edge-design
npm i edge-design
edge-design 目前使用的是 16.x 版本 react,如果项目中使用 17.x 版本的 react 可能出现安装失败的情况,这是因为 npm@7 会对依赖版本进行检查,依赖版本不一致会导致安装失败。这时请耐心检查,通过对相关依赖进行升、降级处理完成安装。或者执行:
// 不推荐的写法,使用后检查到不同版本依赖会全部安装
npm i edge-design -f
安装完成后,查看 package.json,可以看到:
"edge-design": "^0.1.7"
在开发过程中,会不断更新小版本,根据 Semantic Versioning 2.0.0 语义化版本规范,需将 edge-design 的依赖版本描述更改为:
// "edge-design": "^ 0.1.7"
"edge-design": "~0.1.7"
也可以在安装 edge-design 前手动在 package.json 的 denpendencies 中键入上面的描述,再重新 npm i。
使用
前置
项目中使用 edge-design 推荐将组件和样式前缀更改为'edge'
替代 antd 的'ant'
,这样在使用和覆盖样式时可以保持一致性。可通过以下步骤进行更改:
- 在入口文件中通过
ConfigProvider
组件将前缀名更改为'edge'
- 在
webpack.common.js
中将样式前缀也更改为了'edge'
- 提供的通用提示方法使用了 edge-design 的
message
,由于调用不在ConfigProvider
上下文中,因此单独在对应文件中配置了前缀'edge-message'
完成安装
引入
edge-design 组件的引入和 antd 整体一致,在 webpack 中使用了相应 loader 实现了按需加载,为了保持风格的一致性,禁止从单个组件目录中引入组件本体和本体样式。为了便于 tree-shaking 的优化,请从edge-design/es/**
路径引入,避免从edge-design/lib/**
中引入。edge-design 和 antd 使用的不同是,一些 edge-design 继承自 antd 组件的属性、方法或类型接口的引入在实现时被忽略了,这时只需要从 antd 中引入即可。
// 从edged中引入组件本体
import { Button, Space, EdgeMixinSelector, EdgeTimeroutine } from 'edge-design';
// 引入属性、方法或类型接口
import { defaultValueMap } from 'edge-design/es/edge-timeroutine';
import { durationDefaultValue, TimeroutinePattern } from 'edge-design/es/edge-timeroutine/utils';
// 从_utils中获得支持
import { BaseJson } from 'edge-design/es/_utils';
import { Tree, TreeJson, TreeNode } from 'edge-design/es/_utils/tree';
// 允许从antd中获取属性、方法或类型接口
import { ColumnType, Key, SorterResult, TablePaginationConfig } from 'antd/es/table/interface';
import { getColumnKey, getColumnPos } from 'antd/es/table/util';
// 禁止直接从组件目录中引入组件和样式
// import Table from 'edge-design/es/table';
// import 'edge-design/es/table/style';
示例
import React from 'react';
import { Watermark } from 'edge-design';
function App() {
return (
<div className="App">
<Watermark content="中移VR创新中心"/>
</div>
);
}
export default App;