React-Find 一款能快速在网页定位到源码的工具,支持React19.x/next 15

React Find

react-find 是可以帮助您快速定位react文件的npm包,在页面中你可以通过command/ctrl 加鼠标左键/右键就能快速定位并跳转至IDE源代码对应位置

功能

  • 直接点击可直接跳转至code
  • 右键可查看当前节点和父级节点
  • 支持自定义IDE,辅助按键
  • 支持remotessh快速跳转
  • 支持vite/webpack/turbopack,均提供了对应的插件和示例
  • 支持react16.x~19.x,next14/15

如果您感兴趣,欢迎安装使用,如果有时间可以动动小手点点star(github地址在文末)

演示

当然,您也可以使用右键菜单来查找当前节点及其父节点

安装

shell 复制代码
pnpm install react-find

开始使用

如果您使用 React 19.x 或更高版本,您应该使用插件

在 Vite 中:

typescript 复制代码
//vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
// 添加类型声明以解决模块声明文件缺失问题
import { vitePluginReactSource } from 'react-find/vite';
// https://vite.dev/config/
export default defineConfig({
  define: {
    'process.env': process.env,
  },
  plugins: [vitePluginReactSource(), react()],
});

在 Webpack 中:

typescript 复制代码
 {
        test: /\.(ts|tsx|js|jsx)$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'babel-loader',
            options: {
              presets: [
                '@babel/preset-env',
                '@babel/preset-react',
                '@babel/preset-typescript'
              ]
            }
          },{
            loader: require.resolve('react-find/webpack/webpack-react-source-loader')
          }
        ]
      },

在您的文件中添加脚本,如 pages/app.tsx

jsx 复制代码
import { init } from 'react-find/next';

init();

如果您使用的是 React 18.x,你不需要使用插件,但你需要引入react-find/next

typescript 复制代码
import { init } from 'react-find/next';

init();

如果您使用 React 17.x 或更低版本,您无需使用插件,直接导入即可

typescript 复制代码
import init from 'react-find';

init();

在 Next.js 中,使用 webpack-react-source-loader

typescript 复制代码
/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: config => {
    config.module.rules.push({
      test: /\.(ts|tsx|js|jsx)$/,
      exclude: /node_modules/,
      use: [
        {
          loader: 'react-find/webpack/webpack-react-source-loader',
        },
      ],
    });

    return config;
  },
};

export default nextConfig;

如果您使用 turbopack,您可以使用以下配置

typescript 复制代码
import type { NextConfig } from 'next';

const nextConfig: NextConfig = {
  turbopack: {
    rules: {
      '*.tsx': {
        loaders: ['react-find/webpack/webpack-react-source-loader'],
      },

      '*.jsx': {
        loaders: ['react-find/webpack/webpack-react-source-loader'],
      },
    },
  },
};

export default nextConfig;

您应该创建一个客户端组件来初始化它

typescript 复制代码
"use client"

import { PropsWithChildren, useEffect } from "react"
import {init} from 'react-find/next'
const Profile=(props:PropsWithChildren)=>{
    useEffect(()=>{
        init()
    },[])
    return <div>{props.children}</div>

}
export default Profile

然后在您的布局组件中使用它

typescript 复制代码
export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {

  return (
    <html lang="en">
      <body
      >
        <Profile>
            {children}
        </Profile>

      </body>
    </html>
  );
}

然后按下 command(Mac)或 ctrl(Windows)并移动鼠标来尝试,点击块将带您到 IDE

您也可以右键单击来查找当前节点和父节点,这可以找到源文件。

如果您总是使用其他 IDE,您可以这样初始化,或在 localStorage 中设置键 react_find_protocol

js 复制代码
init({ protocol: 'cursor' });

支持 Remote SSH

如果您使用的是 Remote SSH,您可以使用以下配置

仓库地址

github.com/mjw-git/rea... 如果您感兴趣,欢迎动动小手star

相关推荐
昔人'7 小时前
css`font-variant-numeric: tabular-nums` 用来控制数字的样式。
前端·css
铅笔侠_小龙虾8 小时前
动手实现简单Vue.js ,探索Vue原理
前端·javascript·vue.js
哟哟耶耶10 小时前
Starting again-02
开发语言·前端·javascript
Apifox.10 小时前
Apifox 9 月更新| AI 生成接口测试用例、在线文档调试能力全面升级、内置更多 HTTP 状态码、支持将目录转换为模块
前端·人工智能·后端·http·ai·测试用例·postman
Kitasan Burakku10 小时前
Typescript return type
前端·javascript·typescript
叁佰万10 小时前
前端实战开发(一):从参数优化到布局通信的全流程解决方案
前端
笔尖的记忆10 小时前
js异步任务你都知道了吗?
前端·面试
光影少年10 小时前
react生态
前端·react.js·前端框架
golang学习记11 小时前
从0死磕全栈之Next.js 中的错误处理机制详解(App Router)
前端
力Mer11 小时前
console.log()控制台异步打印与对象展开后不一致问题
前端·javascript