赞
踩
一个node项目,代码补全的建议总是显示的非常慢,比如输入一个for,显示补全的建议可能等待需要2-3秒。使用 ctrl+i 快捷键的话就会显示正在加载中...,也需要等2-3秒才能显示出补全建议
比较诡异的是,就只有这一个项目有这个问题,有用其他的node项目和ts项目和单独的js文件验证过都是正常的,建议基本都是瞬间就出来了
尝试过这些方式,都没有效果,大概尝试了这些:
1、在vscode设置里修改 Quick Suggestions Delay 、 Snippets Prevent Quick Suggestions
2、卸载掉所有的插件
3、卸载了vscode,并把C盘appdata里vscode的数据都清空了,插件数据也删了,重装了vscode(这次没装任何插件)
4、考虑是不是node_modules下的文件太多了,将这个目录删除掉
5、将node_modules目录加入到vscode设置里的Watcher Exclude(从文件观察中排除)和Exclude(排除文件夹,在资源管理器里不显示)
6、将火绒这些管家或者杀毒软件关掉(网上看到的,瞎猫碰下死耗子)
以上方式试了都没有用,最后发现把所有文件里导出的语句module.exports 全部替换成exports就可以了,至此这个项目的代码补全建议就恢复正常,和其他项目一样能瞬间出现,但很疑惑的是其他项目用的也是module.exports导出,却没有这个问题,最终还是不清楚这个问题的根本原因是什么
虽然替换module.exports能解决补全提示过慢的情况,但是也带来了新的问题,所有文件替换成exports之后,文件内函数或变量的导入导出全都需要重新修改并且要靠开发者自己判断如何修改,因为每个文件的导出导出都是有特定需要的,这就带来了大量的工作量,不死心的我又花了一下午,最终成功的定位到问题
node_modules下有一个包的声明文件用了很老的写法 declare module 'xxx' 定位到问题就很好解决了,两种方案:
1、将这个包升到新版本,发现这个包新版本已经没有用这个老方式声明,问题解决
2、如果不能升级新版本,直接把d.ts里的声明改成 declare namespace xxx 即可。注意包名不要带旧写法的引号了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。