传送门javascript
$ npm i ali-img-upload --save
本组件接入了阿里云OSS SDK,配合antd Upload上传组件,进行分片上传图片至阿里云OSS对象存储。css
组件使用了持久化受权,官网提供了如何去设置临时受权模式,你能够在本组件基础进行二次开发。java
import React from 'react'; import { AliUpload } from 'ali-img-upload'; import { Form } from 'antd'; export default function Demo() { // antd form 实例 const [form] = Form.useForm(); return ( <AliUpload ossConfig={{ region: '', accessKeyId: '', accessKeySecret: '', bucket: '' }} baseURL={""} form={form} /> ) }
create-react-app
建立的项目为例)采坑记:create-react-app
内部配置的babel是不支持的编译node_modules
的jsx语法与less的,因此借助cra
配置。node
customize-cra
与react-app-rewired
{ "scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test" } }
config-overrides.js
const { override, addWebpackAlias, addWebpackModuleRule, babelInclude, addLessLoader } = require('customize-cra'); const path = require('path'); const resolve = dir => path.resolve(__dirname, dir); module.exports = { webpack: override( addLessLoader({ javascriptEnabled: true, // modifyVars: { '@primary-color': '#1DA57A' }, }), addWebpackAlias({ "@": resolve("src") }), // addBabelPreset({ // test: ["./node_modules/ali-img-upload"], // presets: ["@babel/preset-react"] // }) addWebpackModuleRule({ test: /\.less$/, include: resolve('node_modules'), use: ['style-loader', 'css-loader', 'less-loader'], }), babelInclude([ resolve('src'), resolve('node_modules') ]) ) }
Copyright By Eric Wangreact