@saberlayer/avatar-upload
Version:
A React avatar upload component with image crop feature based on Ant Design
119 lines (89 loc) • 2.51 kB
Markdown
# @saberlayer/avatar-upload
一个基于 Ant Design 的头像上传组件,支持图片裁剪功能。
## 更新日志
### v1.1.0
- 优化文件结构,统一构建输出到 dist 目录
- 简化包体积,移除冗余文件
- 保持对 CommonJS、ES Module 和 UMD 的完整支持
- 优化 TypeScript 类型声明文件位置
## 安装
```bash
npm install @saberlayer/avatar-upload
# 或
yarn add @saberlayer/avatar-upload
```
## 使用方法
支持多种导入方式:
### ES Modules
```jsx
import { AvatarUpload } from '@saberlayer/avatar-upload';
import '@saberlayer/avatar-upload/dist/index.css';
```
### CommonJS
```jsx
const { AvatarUpload } = require('@saberlayer/avatar-upload');
require('@saberlayer/avatar-upload/dist/index.css');
```
### UMD
```html
<link rel="stylesheet" href="https://unpkg.com/@saberlayer/avatar-upload/dist/index.css" />
<script src="https://unpkg.com/@saberlayer/avatar-upload/dist/index.umd.js"></script>
```
### 使用示例
```jsx
import React from 'react';
import { AvatarUpload } from '@saberlayer/avatar-upload';
import '@saberlayer/avatar-upload/dist/index.css';
const App = () => {
const handleChange = (url) => {
console.log('头像地址:', url);
};
return (
<AvatarUpload
value="https://example.com/avatar.jpg"
onChange={handleChange}
maxSize={2} // 最大文件大小,单位MB,默认2MB
/>
);
};
export default App;
```
## API
| 参数 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| value | 头像URL | string | - |
| onChange | 头像变化时的回调函数 | (url: string) => void | - |
| maxSize | 最大文件大小,单位MB | number | 2 |
## 特性
- 支持图片上传
- 支持图片裁剪
- 支持预览
- 支持文件大小限制
- 支持 JPG/PNG 格式
- 美观的 UI 界面
- 支持 TypeScript
- 支持 Tree Shaking
- 支持多种模块规范(ES Module/CommonJS/UMD)
## 开发
```bash
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
```
## License
MIT
## 目录结构
```
dist/
├── index.cjs.js # CommonJS 版本
├── index.cjs.js.map
├── index.esm.js # ES Module 版本
├── index.esm.js.map
├── index.umd.js # UMD 版本
├── index.umd.js.map
├── index.d.ts # TypeScript 类型声明
└── index.css # 样式文件
```