在成百上千个组件的大型项目中,找页面上的 UI 对应的组件源码很花时间。对于新加入项目的同学来说,找源码就更花时间了。

如何快速找到源码呢?写文档,详细的记录各业务模块的组件对应的文件地址。这么做,耗时耗力,还会出现文档和组件的真实位置不一致的情况。

解决方案

如果点击 UI,能跳转到编辑器中对应的组件源码,就太省时间啦~

如果你用的是 React, React Dev Inspector
实现了这个功能。

使用方法

1 添加依赖

  1. npm i -D react-dev-inspector

2 在根组件外侧包裹监控节点

  1. import React from 'react'
  2. import { Inspector, InspectParams } from 'react-dev-inspector'
  3. const InspectorWrapper = process.env.NODE_ENV === 'development'
  4. ? Inspector
  5. : React.Fragment
  6. export const Layout = () => {
  7. // ...
  8. return (
  9. <InspectorWrapper
  10. // props docs see:
  11. // https://github.com/zthxxx/react-dev-inspector#inspector-component-props
  12. keys={['control', 'shift', 'command', 'c']}
  13. disableLaunchEditor={false}
  14. onHoverElement={(params: InspectParams) => {}}
  15. onClickElement={(params: InspectParams) => {}}
  16. >
  17. <YourComponent>
  18. ...
  19. </YourComponent>
  20. </InspectorWrapper>
  21. )
  22. }

同时按下 InspectorWrapperkeys 的键后,点击 UI 跳转到源码。

3 添加配置

  1. // babelrc.js
  2. export default {
  3. plugins: [
  4. // plugin options docs see:
  5. // https://github.com/zthxxx/react-dev-inspector#inspector-babel-plugin-options
  6. 'react-dev-inspector/plugins/babel',
  7. ],
  8. }
  1. // webpack.config.ts
  2. import type { Configuration } from 'webpack'
  3. import { launchEditorMiddleware } from 'react-dev-inspector/plugins/webpack'
  4. const config: Configuration = {
  5. /**
  6. * [server side] webpack dev server side middleware for launch IDE app
  7. */
  8. devServer: {
  9. before: (app) => {
  10. app.use(launchEditorMiddleware)
  11. },
  12. },
  13. }

4 编辑器配置
VSCode 进行如下配置:
vscode-config.png

修改命令行工具的配置,如 .bashrc.zshrc。添加:

  1. export REACT_EDITOR=code

其他编辑器的配置,见 这里

告别找源码的痛苦,赶紧用起来吧~

觉得本文对你有帮助。点个赞,分享给小伙伴们吧~

参考文档