发布于 2026-01-05 1 阅读
0

你的 VS Code 扩展程序运行缓慢吗?这里教你如何加速! - Extensions Rock - Peacock for Visual Studio Code

你的 VS Code 扩展程序运行缓慢吗?这里教你如何加速!

- Extensions Rock -

Peacock for Visual Studio Code

- Extensions Rock -

VS Code 用户(而且我们人数众多)都非常喜欢各种扩展程序。市面上有成千上万个 VS Code 扩展程序可供选择,许多人甚至安装了好几个。它们功能丰富,从高亮显示你最喜欢的编程语言、格式化代码,到更改主题颜色,应有尽有。

您是否注意到,启动 VS Code 时,某些扩展程序需要一些时间才能初始化?造成这种延迟的原因可能是什么?

对此你有什么办法呢?其实有很多办法。请继续阅读,了解如何帮助你最喜欢的扩展程序快速加载!

一个可能的原因是文件数量或扩展程序的大小。有些扩展程序功能繁多,随着时间的推移可能会变慢。

等等,这是为什么?

当我们为 Web 开发应用程序时,通常会编写几十甚至几百个 JavaScript、CSS 和 HTML 文件。我们不希望通过 Web 向浏览器发送上千个文件,因为这可能会导致用户体验极差,用户需要长时间等待。而且,我们编写的代码在浏览器优化方面也做得不够完善。现代工具通过将文件压缩成单个(或少量)文件来帮助我们解决这个问题。Webpack 就是一款常用的工具

如果您使用“开发者:显示正在运行的扩展”命令,您将看到 VS Code 实例中已激活的扩展列表。您还可以在右侧看到每个扩展的激活时间(以毫秒为单位)。

显示正在运行的扩展程序

这是找出哪些扩展程序激活速度较慢的好方法。请注意,以下列表来自我的 VS Code 实例,显示了我安装的一些扩展程序及其激活时间。显然,有些扩展程序加载时间更长,因为它们执行的操作更多。

运行扩展

如果响应时间过长(比如1000毫秒),该怎么办?

加快扩展程序运行速度

最近,VS Code 团队发布了使用 Webpack 将扩展中的文件打包的功能

这篇文章内容非常全面,对打包扩展程序很有帮助。

我发现我的Peacock扩展程序会在打包文件中放入48个文件。我做了一些调整,大幅减少了文件数量。

首先,我向.vscodeignore文件中添加了一些文件。



# Files I excluded
azure-pipelines.yml
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
vsc-extension-quickstart.md
node_modules/**/test/**

# After webpack, we have more to ignore
node_modules
out/
src/
tsconfig.json
webpack.config.json


Enter fullscreen mode Exit fullscreen mode

然后我为我的扩展创建了一个新分支。我按照VS Code 文档中的步骤更新了我的项目,使其使用 Webpack。

我的目标是让所有这些功能继续有效:

  • 包装npm run package
  • 出版npm run publish
  • 本地和 CI 测试npm run test
  • 使用 F5 进行调试launch.json
  • 使用 F5 调试测试launch.json

这种方法需要我同时使用 webpack 进行编译,以及tsc用于测试和调试。

这是我的项目:https://github.com/johnpapa/vscode-peacock

我修改了我的主文件package.json



  "main": "./dist/extension",


Enter fullscreen mode Exit fullscreen mode

我的 npm 脚本在package.json



  "scripts": {
    "package": "npx vsce package",
    "publish": "npx vsce publish",

    "vscode:prepublish": "webpack --mode production",
    "compile": "webpack --mode none",
    "watch": "webpack --mode none --watch",

    "postinstall": "node node_modules/vscode/bin/install",
    "just-test": "node node_modules/vscode/bin/test",
    "test-compile": "tsc -p ./ && npm run compile",
    "test": "npm run test-compile && node node_modules/vscode/bin/test"
  },


Enter fullscreen mode Exit fullscreen mode

我的launch.json运行时调试和测试配置:



  "configurations": [
    {
      "name": "Run Extension",
      "type": "extensionHost",
      "request": "launch",
      "runtimeExecutable": "${execPath}",
      "args": ["--extensionDevelopmentPath=${workspaceFolder}"],
      "outFiles": ["${workspaceFolder}/dist/**/*.js"],
      "preLaunchTask": "npm: test-compile"
    },
    {
      "name": "Extension Tests",
      "type": "extensionHost",
      "request": "launch",
      "runtimeExecutable": "${execPath}",
      "args": [
        "${workspaceFolder}/testworkspace",
        "--disable-extensions",
        "--extensionDevelopmentPath=${workspaceFolder}",
        "--extensionTestsPath=${workspaceFolder}/out/test"
      ],
      "outFiles": ["${workspaceFolder}/out/test/**/*.js"],
      "preLaunchTask": "npm: test-compile"
    }
  ]


Enter fullscreen mode Exit fullscreen mode

这里是完整的代码仓库,你可以在这里看到所有内容的上下文👇

GitHub 标志 johnpapa / vscode-peacock

巧妙地改变 Visual Studio Code 工作区的颜色。当您拥有多个 VS Code 实例、使用 VS Live Share 或使用 VS Code 的远程功能,并且希望快速识别当前编辑器时,此功能非常理想。

Peacock for Visual Studio Code

孔雀图标

巧妙地改变 Visual Studio Code 工作区的颜色。当您拥有多个 VS Code 实例、使用 VS Live Share 或使用 VS Code 的远程功能,并且希望快速识别当前编辑器时,此功能非常理想。

请阅读此处的完整文档,其中包括 Peacock 使用指南和更新日志。

Visual Studio Code 扩展 johnpapa.vscode-peacock 的版本徽章 安装 下载 等级 实时共享

MIT许可证 所有贡献者

构建状态

安装

  1. 在 Visual Studio Code 中打开“扩展”侧边栏面板,然后选择“视图”→“扩展”菜单选项。
  2. 搜索Peacock
  3. 点击安装
  4. 如果需要,请点击“重新加载” 。

文档

请阅读此处的完整文档,其中包括 Peacock 使用指南和更新日志。

快速使用

让我们看看孔雀的实际表现!

  1. 创建/打开 VSCode 工作区(Peacock 只能在工作区内运行
  2. 按下此键F1打开命令面板。
  3. 类型Peacock
  4. 选择Peacock: Change to a favorite color
  5. 选择一种预设颜色,看看它会发生什么变化……

它可能会产生什么样的影响?

这是一个很好的问题,我们确实应该提出来。毕竟,任何代码更改都必须有其价值。我已获得许可(感谢 VS Code 团队和 Erich Gamma),可以分享一些您可能使用过的两个扩展的性能统计数据(非官方测试)。

这两个扩展程序都包含大量的逻辑,并能实现一些非常出色且有用的功能。

Azure 帐户

Azure帐户扩展的大小和文件数量大幅减少……就像从“我的天哪”变成了“还不错”!

“预激活”是指扩展程序在之前已安装过(并非首次安装)的情况下,激活所需的时间。这次的预激活时间缩短了一半,相当不错!

  • 下载大小(.vsix 文件):6.2M 至 840K。

  • 打包文件:4300 至 11

  • 热激活时间:676毫秒至338毫秒

Docker

Docker扩展程序的热激活时间显著缩短至 2 秒以内。但关键在于冷激活时间。冷激活时间是指扩展程序刚安装后激活所需的时间。

  • 热激活时间:3.5秒至小于2秒

  • 冷激活时间(首次安装后):20秒至2秒

尖端

使用 webpack 打包扩展程序会影响到很多方面。因此,对所有这些方面进行测试至关重要。

  • 在本地调试器中运行扩展程序(并测试是否可以命中断点)
  • 将扩展程序打包并从菜单中加载(从 VSIX 加载)。
  • 使用调试器运行测试(并测试是否可以命中断点)
  • 从此处运行您的测试脚本npm test

完成后,您可以再次查看激活时间。

但我并没有编写这个扩展程序。

没关系,但是如果您喜欢这个扩展,请考虑在其存储库上创建一个拉取请求(PR)以启用 webpack 打包!

开源软件的妙处在于人人都能发表意见。这是帮助你喜爱的项目和同行的绝佳途径!

感谢Erich Gamma指出这一点!

已转载至 johnpapa.net

文章来源:https://dev.to/azure/is-your-vs-code-extension-slow-heres-how-to-speed-it-up-4d66