V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0o0O0o0O0o
V2EX  ›  Visual Studio Code

vscode 写 typescript 有些包反应特别慢应该怎么办

  •  
  •   0o0O0o0O0o · 2022-02-10 17:41:03 +08:00 · 2706 次点击
    这是一个创建于 807 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图 https://imgur.com/sBcRTKb

    之前很正常,但只要我用 visit 对应的包,就会变得特别卡。

    直接 clone jsynowiec/node-typescript-boilerplate 这个模板,就加了这两个依赖

        "unist-util-visit": "^4.1.0",
        "remark": "^14.0.2"
    

    然后新建个图中的 parse.ts 文件。

    vscode 的 settings.json 也非常简单:

    {
        "editor.renderControlCharacters": true,
        "editor.wordWrap": "on",
        "files.autoSave": "onFocusChange",
        "terminal.integrated.copyOnSelection": true,
        "workbench.startupEditor": "none",
        "breadcrumbs.enabled": true,
        "git.autorefresh": false,
        "git.autofetch": false,
        "files.eol": "\n",
        "terminal.integrated.tabs.enabled": true,
        "workbench.colorTheme": "Visual Studio Dark",
        "editor.formatOnSave": false,
        "editor.formatOnType": false,
        "editor.formatOnPaste": false,
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "[javascript]": {
            "editor.formatOnSave": true
        },
        "[typescript]": {
            "editor.formatOnSave": true
        }
    
    }
    

    插件也被我试图排查时卸载得差不多了。

    code --list-extensions

    Dart-Code.dart-code
    Dart-Code.flutter
    dbaeumer.vscode-eslint
    esbenp.prettier-vscode
    golang.go
    MS-CEINTL.vscode-language-pack-zh-hans
    ms-vscode.cmake-tools
    ms-vscode.cpptools
    ms-vscode.cpptools-extension-pack
    ms-vscode.cpptools-themes
    pnp.polacode
    quicktype.quicktype
    

    node 版本从 12 到 16 都尝试了。

    请问大概是什么原因?应该怎么解决?

    第 1 条附言  ·  2022-02-10 19:08:38 +08:00
    暂时的解决方案 https://imgur.com/I1VHNqT

    算是能继续写了
    12 条回复    2022-02-10 20:02:19 +08:00
    makelove
        1
    makelove  
       2022-02-10 18:07:10 +08:00
    也可能不是你环境的原因而是包的 TypeScript 定义的原因

    之前我用的 MaterialUI,每弹出个提示卡住 vscode 3 秒,几乎到达不能用的地步
    https://github.com/mui/material-ui/issues/19113
    用户怨声载道,然而这么久了也修不好
    0o0O0o0O0o
        2
    0o0O0o0O0o  
    OP
       2022-02-10 18:11:01 +08:00 via iPhone
    @makelove 那这可太难受了,之前是用 js 乱糊,就因为这(一系列)库没代码提示所以决定切到 typescript 试试,这下又懵住了
    vance123
        3
    vance123  
       2022-02-10 18:12:38 +08:00
    到 node_modules 里把 index.d.ts 删掉,缺点是会失去类型提示
    shunia
        4
    shunia  
       2022-02-10 18:35:25 +08:00
    如果没有什么特别的理由,建议重新安装 vscode 试试,确认一下问题出在哪里。
    另外也可以试试安装完包之后重启 vscode 。

    我用 ts 超过 4 年,vscode 从刚发行就开始,没遇到过这个问题。
    0o0O0o0O0o
        5
    0o0O0o0O0o  
    OP
       2022-02-10 18:40:22 +08:00
    shunia
        6
    shunia  
       2022-02-10 18:46:56 +08:00
    @0o0O0o0O0o #5
    https://github.com/microsoft/TypeScript/issues/46900#issuecomment-999287632

    那就回退 typescript 版本即可,看起来是个简单的解决方案。typescript 还是比较少出现这种严重的 bug ,我都只遇到过 ts 语法和 d.ts 解析上的问题。
    0o0O0o0O0o
        7
    0o0O0o0O0o  
    OP
       2022-02-10 18:50:37 +08:00
    @shunia 已经按照这个人的做法回退 typescript 版本了,也重启 vscode 了,但没什么效果(我没有关注 CPU 占用,但代码提示还是那么慢),正在尝试对照他回复的时间回退各项依赖的版本。
    0o0O0o0O0o
        8
    0o0O0o0O0o  
    OP
       2022-02-10 19:04:43 +08:00
    issue 中的方案实测对我没效果,但暂时解决了,给 visit 的参数类型改了一下。

    https://imgur.com/I1VHNqT

    不卡了。
    0o0O0o0O0o
        9
    0o0O0o0O0o  
    OP
       2022-02-10 19:17:50 +08:00
    题外话:以前有一段时间自己没办法写代码,只能看别人直播写代码,特别羡慕那种自己只需要写很少一部分,IDE 提示和补全可以帮忙写很多的行云流水的感觉,没想到轮到我就这么坎坷...
    dcsuibian
        10
    dcsuibian  
       2022-02-10 19:43:17 +08:00
    要不,先用 WebStorm 试试看?
    0o0O0o0O0o
        11
    0o0O0o0O0o  
    OP
       2022-02-10 19:49:55 +08:00 via iPhone
    @dcsuibian 暂时解决了,不然差点就去试试了
    ob
        12
    ob  
       2022-02-10 20:02:19 +08:00
    @shunia #4 有用啥 ORM 框架吗?还是直接撸 sql ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2980 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 14:16 · PVG 22:16 · LAX 07:16 · JFK 10:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.