---
order: 8
title: V3 to V4
---
We provide a codemod cli tool [@ant-design/codemod-v4](https://github.com/ant-design/codemod-v4) to help you quickly upgrade to antd v4.
## Usage
Before running the codemod cli, please submit your local code changes.
```shell
# run directly with npx
npx -p @ant-design/codemod-v4 antd4-codemod src
# or global installation
# use npm
npm i -g @ant-design/codemod-v4
# or use yarn
yarn add -g @ant-design/codemod-v4
# run
antd4-codemod src
```
## TL;DR
`@ant-design/codemod-v4` will help you migrate to antd v4, `@ant-design/compatible` is the workaround for the deprecated APIs and components, so you don't need to do it yourself in general. The blew content is the migration detail.
#### Replace deprecated `Form` and `Mention` from `@ant-design/compatible`
```diff
- import { Form, Input, Button, Mention } from 'antd';
+ import { Form, Mention } from '@ant-design/compatible';
+ import '@ant-design/compatible/assets/index.css';
+ import { Input, Button } from 'antd';
ReactDOM.render( (
);
```
#### Replace components string icon prop with new `@ant-design/icons`
```diff
import { Avatar, Button, Result } from 'antd';
+ import { QuestionOutlined, UserOutlined } from '@ant-design/icons';
ReactDOM.render(
-
+
-
+ }
title="Great, we have done all the operations!"
extra={}
/>
,
mountNode,
);
```
#### Replace v3 Icon with the new `@ant-design/icons`
```diff
- import { Icon, Input } from 'antd';
+ import { Input } from 'antd';
+ import Icon, { CodeFilled, SmileOutlined, SmileTwoTone } from '@ant-design/icons';
const HeartSvg = () => (
);
const HeartIcon = props => ;
ReactDOM.render(
-
+
-
+
-
+ Cool Home
} />
,
mountNode,
);
```
#### Replace v3 LocaleProvider with v4 ConfigProvider component
```diff
- import { LocaleProvider } from 'antd';
+ import { ConfigProvider } from 'antd';
ReactDOM.render(
-
+
-
+
mountNode,
);
```
#### Replace `Modal.method()` string icon property with the new `@ant-design/icons`
```diff
import { Modal } from 'antd';
+ import { AntDesignOutlined } from '@ant-design/icons';
Modal.confirm({
- icon: 'ant-design',
+ icon: ,
title: 'Do you Want to delete these items?',
content: 'Some descriptions',
onOk() {
console.log('OK');
},
onCancel() {
console.log('Cancel');
},
});
```