背景
不知道各位前端同学在开发的时候有没有遇到过以下两种问题,反正我遇到了🤣:
-
问题1:
package.json中的依赖,想在node_modules中找到,比较麻烦,要么通过在项目代码(import * from 'lodash')中点进去,要么就得自己去node_modules中巴拉了,还好目录是按字母升序的,不过如果使用的是npm或者yarn的时候,所有子依赖都会被拍平到node_modules中,找起来真的费眼睛... -
问题2:项目在使用
pnpm,常常遇到符号链接文件夹,符号链接背后才对应着真实的源码,找了一圈,好像没有比较好的方式直接跳转过去,我一般在命令行ll看一下映射,然后再点击跳转过去,文件夹比较少还好,比较多的时候,ll也会铺满一个屏幕,找起来也是相当费眼睛...
解决方案
秉着能少用眼睛就少用眼睛的政策,午休时间想到了一个方案,花了一个小时实现了一下,试用效果出乎意料的不错,最后将其发布到了插件商店,大家都可以搜索下载,插件名字:fe-jump,插件地址:marketplace.visualstudio.com/items?itemN…
没错儿~ 它是一个vscode插件,安装后的效果如下:
安装后,它一点也不张扬,只会默默的为你提供了两个功能,下面我们简单介绍下:
功能一
command(ctrl) + 点击 = 跳转到对应的依赖目录
在你的package.json中,摁下command,然后鼠标悬浮到依赖名称上,如果出现下划线,那么就可以点击进去了!
编辑器可以自动帮你打开对应依赖的package.json(或者入口文件)!
功能二
右键菜单,直接定位到符号链接后面真实的文件夹
在符号链接的文件夹上(符号链接这种特殊文件夹,右侧会展示一个箭头),右击会出现一个菜单,如图所示。
点击它之后,编辑器会自动帮你打开符号链接后面真正的源码!(默认会打开package.json)
如果你的项目使用的是pnpm,那么这个功能你可能很需要!
推销一下
自己对比了市面上自己用过的、同事用过的插件之后,得出了一些好用点(优势),看看是否直击你的痛点哈:
1、fe-jump 这款插件可以直接点击进入,使用成本是相比之下最低的~ 也是比较符合使用习惯的,使用逻辑当你从package.json中看到了,点击了,就进入了,非常符合开发同学的操作认知。
2、经自己的测试,fe-jump 是兼容所有位置的node_modules的(注意哦,不是所有项目的node_modules都像最简单的单一应用一样,在根目录中有一个package.json + node_modules,还有其他的比如pnpm的node_modules就有点不一样,pnpm的monorepo的node_modules差别更大),这个插件理论上是兼容所有场景的,只要你的依赖装进去了,就可以在package.json中点击进入了,它不关心你的项目结构,不关心你的项目是monorepo还是其他类型,只要可以使用node来require进来的,都可以跳转。
3、续上,完美支持monorepo,即使存在一个依赖多个版本,比如不同的子应用对应好几个版本的react,那么在各自的子应用里点击进去的就是打包时的对应的react版本,换个说法就是这个查找逻辑和node的查找逻辑一致,理论上不存在差异,可以放心食用哈~
4、一步到位,对于pnpm的软连接方式,从package.json中点击进入的时候,是直接定位到.pnpm下的node_modules中的,即直接找到最根本的位置,比较爽,目前我们的项目在使用pnpm的monorepo,用这个插件排查起来问题还是很爽的,可以省去很多步骤。
插件拆分
如果你只需要 package.json 跳转,那么你可以只安装这个插件:
如果你只需要软链跳转,那么你可以只安装这个插件:
如果你都需要,那么你可以安装这个插件:
其他
上面就是该插件所有的功能了,插件短小精悍,仅200+行代码,已开源,Git仓库在这里,感兴趣的同学可以一起学习~
About Me
一个喜欢搞点小工具解决实际问题的开发小哥,这是我的个人主页:xicunyang.github.io/me ~