<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Vscode on pzzの博客</title>
        <link>https://pzzblog.netlify.app/tags/vscode/</link>
        <description>Recent content in Vscode on pzzの博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 13 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://pzzblog.netlify.app/tags/vscode/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>vscode插件安装失败问题的修复</title>
            <link>https://pzzblog.netlify.app/posts/study/vscode-ext-fix/</link>
            <pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://pzzblog.netlify.app/posts/study/vscode-ext-fix/</guid>
            <description>&lt;h1 id=&#34;正文&#34;&gt;正文&#xA;&lt;/h1&gt;&lt;p&gt;事情的起因是笔者在上早八时打开了 vscode 并将其更新到了最新的版本，即 &lt;a class=&#34;link&#34; href=&#34;https://code.visualstudio.com/updates/v1_111&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;1.111&lt;/a&gt; 。在完成了更新之后，有几个插件显示与新版本的 vscode 不兼容，需要进行更新。 此时问题出现了，在安装插件的过程中 vscode 弹出 &lt;code&gt;安装 &amp;quot;Jieba&amp;quot; 扩展时出错。 有关更多详细信息，请查看日志。&lt;/code&gt; 的报错。完整的报错如下&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;[窗口] End of central directory record signature not found. Either not a zip file, or file is truncated.: Error: End of central directory record signature not found. Either not a zip file, or file is truncated.&#xA;at Ob (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-utility/sharedProcess/sharedProcessMain.js:450:28625)&#xA;at file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-utility/sharedProcess/sharedProcessMain.js:450:29929&#xA;at /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/yauzl/index.js:40:7&#xA;at /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/yauzl/index.js:190:5&#xA;at /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/yauzl/index.js:712:5&#xA;at /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/yauzl/fd-slicer.js:33:7&#xA;at FSReqCallback.wrapper [as oncomplete] (node:fs:671:5)&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;起初笔者认为这是网络环境不太好导致的安装文件损坏引发的问题，于是又重新尝试安装了好几遍，但仍然无法完成安装。故笔者尝试了手动安装，即通过 vscode 下载插件文件并手动移动到 vscode 的插件文件夹下（在笔者的机器上的路径为&lt;code&gt;~\.vscode\extensions\&lt;/code&gt;）。这成功的将插件装上了。但并没有解决插件无法在线安装的问题。于是笔者借助 AI 工具开始对安装的报错进行分析。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;对 vscode 的插件存储机制进行简单的补充，vscode 的插件上是 VISX 文件，本质上就是 ZIP 文件。 从 vscode marketplace 上下载下来的插件文件的格式为 &lt;code&gt;.visxpackage&lt;/code&gt; ，大多数情况下为 &lt;code&gt;.visx&lt;/code&gt; 文件的打包压缩，解压即可。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;报错中的 &lt;code&gt;End of central directory record signature not found&lt;/code&gt; 也是笔者认为是问题在于网络环境不佳导致插件文件不完整。（事实上确实是网络环境的锅，但并不是网络质量的问题 😂 ）从报错堆栈 &lt;code&gt;at /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/yauzl/index.js:712:5&lt;/code&gt; 这一行中笔者也猜想过是 vscode 所调用的解压程序 &lt;code&gt;yauzl&lt;/code&gt; 的锅。但从最快解决问题的方法来说，&amp;ldquo;Retry&amp;rdquo; 思想告诉笔者重启、删除插件重新安装就能解决 99% 的问题，笔者无意深入研究和探索这个解压程序。之后笔者尝试了包括重启 vscode 、将 vscode 回退到&lt;a class=&#34;link&#34; href=&#34;https://code.visualstudio.com/updates/v1_109&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;之前的版本&lt;/a&gt;等的方法，均没有奏效。这时笔者做出了很不理智的决定——将插件文件夹及其缓存在没有备份的情况下都删除了。然而这并没有解决问题，反而让笔者无法重新找到并安装之前的插件了。（血泪教训：执行&lt;code&gt;rm -rf&lt;/code&gt;的之前一定要三思，对重要文件进行备份！！这也促使笔者在之后去对配置文件进行安全的备份。）&lt;/p&gt;&#xA;&lt;p&gt;之后在对网络的排查时却无意发现找到了问题的突破口。笔者通过 &lt;code&gt;file&lt;/code&gt; 命令对下载下来的 &lt;code&gt;.visx&lt;/code&gt; 文件进行类型检查时其输出为 &lt;code&gt;test.vsix: gzip compressed data, max speed, from FAT filesystem (MS-DOS, OS/2, NT), original size modulo 2^32 9404289&lt;/code&gt;。 GPT 通过这条输出找到了问题的真正原因。vscode 的插件格式应该为 &lt;code&gt;Zip archive data&lt;/code&gt; 而不应该是 &lt;code&gt;gzip compressed data&lt;/code&gt;。因为 ZIP 文件的 EOCD(End of central directory) 结构被 gzip 包了一层，vscode 的 ZIP 解析器无法识别，最终导致了插件安装失败。GPT 也给出了被 gzip 压缩的可能原因。&lt;/p&gt;&#xA;&lt;p&gt;笔者开启了 VPN 代理， 此时 HTTP 传输的请求头可能被改写，强制增加了 gzip 支持，导致 ZIP 文件被 gzip 再次封装。另一个可能是代理重新进行了压缩响应，使用 gzip 对 ZIP 文件进行了压缩。而 vscode 期望的是 ZIP 文件，不能正确识别 gzip 压缩的文件，故报错，造成插件安装失败。&lt;/p&gt;&#xA;&lt;h1 id=&#34;备份&#34;&gt;备份&#xA;&lt;/h1&gt;&lt;p&gt;在这一部分中，笔者会简单列出备份 vscode 插件的命令，可能在日后会单开一篇博客介绍配置的备份。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;code --list-extensions &amp;gt; vscode-extensions.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;通过这行命令能够将 vscode 中已安装插件的列表导出至 &lt;code&gt;txt&lt;/code&gt; 文件中。之后可以通过这行命令重新安装列表中的插件。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat vscode-extensions.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs -n &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; code --install-extension&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
        </item></channel>
</rss>
