解决Goland自动下载external library导致版本问题
问题
在GoLand中编写React项目时,出现以下情况:
在项目目录下执行:
npm i react-router-dom
安装的应为默认v6版本(时间2022/08/05,安装版本为6.3.0)
D:\JetBrains\GolandProjects\goland-react-demo>npm ls react-router-dom
goland-react-demo@0.1.0 D:\JetBrains\GolandProjects\goland-react-demo
`-- react-router-dom@6.3.0
此时在项目文件中引入相关组件,如Routes(v6版本新增),发现代码提示中没有Routes,反而存在Redirect
ctrl+左键点击react-router-dom后发现GoLand中存在两个react-router-dom,代码提示使用的是第一个
进入查看后发现这个react-router-dom是v5的版本:
这个是GoLand自动下载的版本,在右侧 External Libraries->Project @types/*->react-router-dom->index.d.ts 中可以看到,而当我们想删除改依赖时,发现该依赖无法被删除(准确说是删除之后又会被GoLand下回来)
解决方法
感谢Stack Overflow: https://stackoverflow.com/questions/70060357/webstorm-is-auto-downloading-javascript-typings-how-to-stop-this
Goland上方导航栏 Help->Find Action…->Registry…
找到 typescript.external.type.definitions.packages,右侧将react-router-dom删除
再将 External Libraries->Project @types/* 下的 react-router-dom 文件夹删除,这次删除就是真的删除了。
回到项目中,同样的位置,Routes组件出现,Redirect组件消失,react-router-dom已经是v6版本了
总结
这算是GoLand的一个坑,似乎是版本更新没跟上,亏他新建项目的时候还能新建React项目
用WebStorm暂时就没有这个问题,还是专门专用吧
以后出现类似的情况应该也可以用这种方式解决