diff --git a/docs/pages/docs/compiler-plugin.mdx b/docs/pages/docs/compiler-plugin.mdx
index 51d00040..2d8b543f 100644
--- a/docs/pages/docs/compiler-plugin.mdx
+++ b/docs/pages/docs/compiler-plugin.mdx
@@ -37,15 +37,65 @@ or read from React's `fiber._debugSource`, some compiler with plugins can provid
## Babel
-There are two supported Babel plugins available should you need them:
+There are some supported Babel plugins available should you need them to record source path information into React components during the development phase:
-### `@babel/plugin-transform-react-jsx-source`
+### `@babel/preset-react`
```bash npm2yarn
-npm i -D @babel/plugin-transform-react-jsx-source
+npm i -D @babel/preset-react
```
-[`@babel/plugin-transform-react-jsx-source`](https://babeljs.io/docs/babel-plugin-transform-react-jsx-source) could inject `__source` props to JSX Elements,
+[`@babel/preset-react`](https://babeljs.io/docs/babel-preset-react) is a Babel preset that compiles JSX and other stuff to React,
+and most React frameworks used it as **built-in preset**, so maybe you don't have to install it.
+
+If you are already using `@babel/preset-react`, **make sure it have enabled the `development` option**, that will provide precise code location information for debugging React apps.
+
+```ts showLineNumbers {7}
+{
+ presets: [
+ [
+ '@babel/preset-react',
+ {
+ runtime: 'automatic', // for react >= 16.14.0
+ development: process.env.NODE_ENV === 'development',
+ },
+ ],
+ ],
+}
+```
+
+
+With `development` and `runtime: 'automatic'` options enabled, it will append `@babel/plugin-transform-react-jsx-development` into plugins.
+
+> while set `runtime: 'classic'` _(for react < 16.14.0)_, it will append legacy `@babel/plugin-transform-react-jsx-source` as instead.
+
+Furthermore, you can also manually add these plugins to your Babel configuration if required.
+
+
+#### `@babel/plugin-transform-react-jsx-development`
+
+If you are already using `@babel/preset-react`, it will be automatically enabled by the `development` option so you don't have to install it.
+
+[`@babel/plugin-transform-react-jsx-development`](https://babeljs.io/docs/babel-plugin-transform-react-jsx-development) could inject the `source` params to `_jsxDEV` function,
+which will be transform to `fiber._debugSource` by React.
+
+```tsx
+// Input
+
+
+// Output
+_jsxDEV("div", {}, void 0, false, {
+ fileName: '/absolute/path/Component.tsx',
+ lineNumber: 10,
+ columnNumber: 6
+ },
+)
+```
+
+
+#### `@babel/plugin-transform-react-jsx-source`
+
+The legacy plugin [`@babel/plugin-transform-react-jsx-source`](https://babeljs.io/docs/babel-plugin-transform-react-jsx-source) could inject `__source` props to JSX Elements,
which will be transform to `fiber._debugSource` by React.
```tsx
@@ -56,10 +106,6 @@ which will be transform to `fiber._debugSource` by React.
```
-
- **Note:** Most React frameworks used `@babel/plugin-transform-react-jsx-source` plugin as **built-in preset**,
- includes Vite / Next.js / Remix / Gatsby / Umijs / create-react-app / ...
-
### `@react-dev-inspector/babel-plugin`
@@ -81,8 +127,9 @@ which will eventually appear on the DOM element.
```
- The difference is that `@react-dev-inspector/babel-plugin` will inject the **relative path** for aesthetic reasons,
- while the `@babel/plugin-transform-react-jsx-source` injects the **absolute path**.
+ The difference is that **`@react-dev-inspector/babel-plugin`** will inject the **relative path** for aesthetic reasons,
+ while the [`@babel/plugin-transform-react-jsx-development`](https://react-dev-inspector.zthxxx.me/docs/compiler-plugin#babelplugin-transform-react-jsx-development)
+ injects the **absolute path**.
### Setup Examples
diff --git a/docs/pages/docs/integration/vite.mdx b/docs/pages/docs/integration/vite.mdx
index 5f3557fd..7d7aae01 100644
--- a/docs/pages/docs/integration/vite.mdx
+++ b/docs/pages/docs/integration/vite.mdx
@@ -14,7 +14,7 @@ At first install the plugin package:
npm i -D @react-dev-inspector/vite-plugin
```
-The `@react-dev-inspector/vite-plugin{:ts}` now export a `inspectorServer` that compatible with `vite@4` / `vite@3` / `vite@2`,
+The `@react-dev-inspector/vite-plugin{:ts}` now export a `inspectorServer` that compatible with `vite@5` / `vite@4` / `vite@3` / `vite@2`,
just add it into `vite.config.ts` and that's all done.
diff --git a/packages/babel-plugin/README.md b/packages/babel-plugin/README.md
index 40a4713c..3d96b86a 100644
--- a/packages/babel-plugin/README.md
+++ b/packages/babel-plugin/README.md
@@ -1,3 +1,24 @@
-Babel plugin for `react-dev-inspector`
+## `@react-dev-inspector/babel-plugin`
+
+
+
+Babel plugin for [`react-dev-inspector`](https://www.npmjs.com/package/react-dev-inspector)
Docs see: https://react-dev-inspector.zthxxx.me/docs/compiler-plugin
+
+
+```bash npm2yarn
+npm i -D @react-dev-inspector/babel-plugin
+```
+
+`@react-dev-inspector/babel-plugin` could inject some custom data attributes start with `data-inspector-`,
+which will eventually appear on the DOM element.
+
+
+```tsx
+// Input
+
+
+// Output
+
+```
diff --git a/packages/inspector/README.md b/packages/inspector/README.md
deleted file mode 120000
index fe840054..00000000
--- a/packages/inspector/README.md
+++ /dev/null
@@ -1 +0,0 @@
-../../README.md
\ No newline at end of file
diff --git a/packages/inspector/README.md b/packages/inspector/README.md
new file mode 100644
index 00000000..3d254dc5
--- /dev/null
+++ b/packages/inspector/README.md
@@ -0,0 +1,106 @@
+React Dev Inspector
+
+
+
+
+
+
+
+
+## Introduction
+
+**react-dev-inspector** is the tool for seamlessly code navigation from browser to IDE.
+
+With **just a simple click**, you can jump from a React component on the browser to its source code in your local IDE instantly.
+Think of it as a more advanced version of Chrome's Inspector.
+
+See the document on: https://react-dev-inspector.zthxxx.me
+
+#### Why React Dev Inspector
+
+Have you ever run into any of these issues 🤔:
+
+- You've got to fix some bugs in your team's project, but you have no idea where the heck page/component's code is located.
+- You're eager to dive into an open-source project that interests you, but it's hard to find where the code for the page/component is implemented.
+- You may thinking about a component and want to quickly peek at its code, but don't want to memorize or manually expand those never-ending deep file paths.
+
+That's exactly why react-dev-inspector was created.
+
+
+
+### Quick Look
+
+Just check out this demo below and you'll get it in a snap.
+
+> screen record gif (8M size):
+
+Showcase: https://react-dev-inspector.zthxxx.me/showcase
+
+[![inspector-gif](https://github.com/zthxxx/react-dev-inspector/raw/master/docs/images/inspect.gif)](https://react-dev-inspector.zthxxx.me/showcase)
+
+Wanna try out the demo right now? Sure, here is the online demo:
+
+[
+ ![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)
+](https://stackblitz.com/edit/github-x3rkzl?file=package.json,vite.config.ts%3AL17)
+
+
+
+## How to Use and Configure
+
+According to the working pipeline [below](#how-it-works), the **Part.1** and **Part.2** are what you need configure to use.
+
+Basically, it's includes:
+1. [add the `` component in your page](https://react-dev-inspector.zthxxx.me/docs/inspector-component)
+2. [integrate the middleware in your framework's dev-server](https://react-dev-inspector.zthxxx.me/docs/integration)
+
+Check the [Documentation Site](https://react-dev-inspector.zthxxx.me/docs) for more details
+
+
+
+## How It Works
+
+Here is the working pipeline of `react-dev-inspector`:
+
+[
+ ![Working Pipeline](https://github.com/zthxxx/react-dev-inspector/raw/dev/docs/images/working-pipeline.svg)
+](https://react-dev-inspector.zthxxx.me/docs#how-it-works)
+
+
+
+### 0. Inject JSX Source
+
+The compiler's [`plugin`](https://react-dev-inspector.zthxxx.me/docs/compiler-plugin)
+records source path info into React components during development stage.
+
+> **Note:** The **0** of _Part.0_ implies that this section is generally **OPTIONAL**.
+> Most React frameworks offer this feature **_out-of-the-box_**,
+> which means you usually **don't** need to manually configure it additionally.
+
+### 1. Inspector Component
+
+The react-dev-inspector provide a [``](https://react-dev-inspector.zthxxx.me/docs/inspector-component) component to reads the source info,
+and sends it to the dev-server when you inspect elements on browser.
+
+### 2. Dev Server Middleware
+
+The react-dev-inspector provide some [middlewares](https://react-dev-inspector.zthxxx.me/docs/integration) for dev-server in most frameworks to receives source path info from API,
+then call your local IDE/Editor to open the source file.
+
+
+
+---
+
+## Articles about it
+
+- [chinese] [🎉 我点了页面上的元素,VSCode 乖乖打开了对应的组件?原理揭秘](https://juejin.cn/post/6901466406823575560)
+
+
+
+---
+
+## License
+
+[MIT LICENSE](./LICENSE)
+
+> Thanks for @zthxxx @sonacy @sl1673495
diff --git a/packages/inspector/package.json b/packages/inspector/package.json
index 453e083d..d69e9c52 100644
--- a/packages/inspector/package.json
+++ b/packages/inspector/package.json
@@ -11,10 +11,11 @@
"test:watch": "vitest watch",
"clean": "rimraf coverage dist es lib build",
"dev": "storybook dev -p 6006",
+ "sync:readme": "cp -f ../../README.md README.md",
"build:storybook": "storybook build",
"build:esm": "tsc -p tsconfig.esm.json",
"build:cjs": "tsc -p tsconfig.cjs.json",
- "build": "npm-run-all clean --parallel build:esm build:cjs"
+ "build": "npm-run-all clean --parallel sync:readme build:esm build:cjs"
},
"repository": "https://github.com/zthxxx/react-dev-inspector/tree/master/packages/inspector",
"publishConfig": {
diff --git a/packages/middleware/README.md b/packages/middleware/README.md
index 80ee45b9..df34514e 100644
--- a/packages/middleware/README.md
+++ b/packages/middleware/README.md
@@ -1,3 +1,18 @@
+## `@react-dev-inspector/middleware`
+
+
+
Dev-Server middleware for `react-dev-inspector`
Docs see: https://react-dev-inspector.zthxxx.me/docs/integration#inspector-middleware
+
+This package mainly just provides a **`launchEditorMiddleware`**,
+that is an [Express.js](https://github.com/expressjs/express) / [Connect.js](https://github.com/senchalabs/connect) **compatible** request middleware.
+
+```bash
+npm i -D @react-dev-inspector/middleware
+```
+
+```ts
+import { launchEditorMiddleware } from '@react-dev-inspector/middleware'
+```
diff --git a/packages/umi4-plugin/README.md b/packages/umi4-plugin/README.md
index 81643b12..3709b019 100644
--- a/packages/umi4-plugin/README.md
+++ b/packages/umi4-plugin/README.md
@@ -1,3 +1,8 @@
+## `@react-dev-inspector/umi4-plugin`
+
+
+
+
Umi4 plugin for `react-dev-inspector`
Docs see: https://react-dev-inspector.zthxxx.me/docs/integration/umijs
diff --git a/packages/vite-plugin/README.md b/packages/vite-plugin/README.md
index ad6cc3ad..0cc19365 100644
--- a/packages/vite-plugin/README.md
+++ b/packages/vite-plugin/README.md
@@ -1,3 +1,7 @@
+## `@react-dev-inspector/vite-plugin`
+
+
+
Vite plugin for `react-dev-inspector`
Docs see: https://react-dev-inspector.zthxxx.me/docs/integration/vite