You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL环境下VS Code启动报错:找不到'cookie'模块,如何解决?

我在WSL(Ubuntu)环境中使用VS Code已有多年,今早启动时出现报错,无法正常工作,同时WSL的bash提示符变成了PowerShell。

报错日志如下:

[2025-05-09 13:27:45.313] Extension version: 0.99.0
[2025-05-09 13:27:45.313] L10N bundle: none
[2025-05-09 13:27:45.318] authorityHierarchy: wsl+ubuntu
[2025-05-09 13:27:45.318] WSL extension activating for a local WSL instance
[2025-05-09 13:27:45.323] Resolving wsl+ubuntu, resolveAttempt: 1
[2025-05-09 13:27:45.323] WSL feature installed: true (dll path)
[2025-05-09 13:27:45.324] NodeExecServer run: C:\WINDOWS\System32\wsl.exe --list --verbose
[2025-05-09 13:27:45.329] Download in background is enabled
[2025-05-09 13:27:45.357] 1 distros found
[2025-05-09 13:27:45.357] Starting VS Code Server inside WSL (wsl2)
[2025-05-09 13:27:45.357] Windows build: 19045. Multi distro support: available. WSL path support: enabled
[2025-05-09 13:27:45.357] Scriptless setup: false
[2025-05-09 13:27:45.358] No shell environment set or found for current distro.
[2025-05-09 13:27:45.429] WSL daemon log file: 
[2025-05-09 13:27:45.430] Probing if server is already installed: if [ -d ~/.vscode-server/bin/19e0f9e681ecb8e5c09d8784acaa601316ca4571 ]; then printf 'install-found '; fi; if [ -f /etc/alpine-release ]; then printf 'alpine-'; fi; uname -m;
[2025-05-09 13:27:45.430] NodeExecServer run: C:\WINDOWS\System32\wsl.exe -d Ubuntu -e sh -c if [ -d ~/.vscode-server/bin/19e0f9e681ecb8e5c09d8784acaa601316ca4571 ]; then printf 'install-found '; fi; if [ -f /etc/alpine-release ]; then printf 'alpine-'; fi; uname -m;
[2025-05-09 13:27:45.502] Probing result: install-found x86_64
[2025-05-09 13:27:45.502] Server install found in WSL
[2025-05-09 13:27:45.503] NodeExecServer run: C:\WINDOWS\System32\wsl.exe -d Ubuntu sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" 19e0f9e681ecb8e5c09d8784acaa601316ca4571 stable code-server .vscode-server --host=127.0.0.1 --port=0 --connection-token=3564623755-3300462107-3786574462-564283591 --use-host-proxy --without-browser-env-var --disable-websocket-compression --accept-server-license-terms --disable-telemetry --telemetry-level=off'
[2025-05-09 13:27:45.662] Setting up server environment: Looking for /home/mslinn/.vscode-server/server-env-setup. Not found.
[2025-05-09 13:27:45.662] WSL version: 5.15.146.1-microsoft-standard-WSL2 Ubuntu
[2025-05-09 13:27:45.662] WSL-shell-PID: 9208
[2025-05-09 13:27:45.662] Node executable: /home/mslinn/.vscode-server/bin/19e0f9e681ecb8e5c09d8784acaa601316ca4571/node
[2025-05-09 13:27:45.662] Starting server: /home/mslinn/.vscode-server/bin/19e0f9e681ecb8e5c09d8784acaa601316ca4571/bin/code-server --host=127.0.0.1 --port=0 --connection-token=3564623755-3300462107-3786574462-564283591 --use-host-proxy --without-browser-env-var --disable-websocket-compression --accept-server-license-terms --disable-telemetry --telemetry-level=off
[2025-05-09 13:27:45.663] node:internal/modules/esm/resolve:873
[2025-05-09 13:27:45.663]   throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
[2025-05-09 13:27:45.663]         ^
[2025-05-09 13:27:45.663] 
[2025-05-09 13:27:45.663] Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'cookie' imported from /home/mslinn/.vscode-server/bin/19e0f9e681ecb8e5c09d8784acaa601316ca4571/out/server-main.js
[2025-05-09 13:27:45.663]     at packageResolve (node:internal/modules/esm/resolve:873:9)
[2025-05-09 13:27:45.663]     at moduleResolve (node:internal/modules/esm/resolve:946:18)
[2025-05-09 13:27:45.663]     at defaultResolve (node:internal/modules/esm/resolve:1188:11)
[2025-05-09 13:27:45.663]     at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:642:12)
[2025-05-09 13:27:45.663]     at #cachedDefaultResolve (node:internal/modules/esm/loader:591:25)
[2025-05-09 13:27:45.663]     at ModuleLoader.resolve (node:internal/modules/esm/loader:574:38)
[2025-05-09 13:27:45.663]     at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:236:38)
[2025-05-09 13:27:45.663]     at ModuleJob._link (node:internal/modules/esm/module_job:130:49) {
[2025-05-09 13:27:45.663]   code: 'ERR_MODULE_NOT_FOUND'
[2025-05-09 13:27:45.663] }
[2025-05-09 13:27:45.663] 
[2025-05-09 13:27:45.663] Node.js v20.19.0
[2025-05-09 13:27:45.663] For help with startup problems, go to https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips
[2025-05-09 13:27:45.664] NodeExecServer run: C:\WINDOWS\System32\wsl.exe -d Ubuntu -e kill 9208

报错核心是Cannot find package 'cookie',我已经尝试过覆盖安装Windows端VS Code、删除%AppData%\Code下所有含cache的目录,但都没有效果,请问该如何解决?


解决方案

1. 修复WSL端VS Code Server的缺失依赖

报错是因为WSL内的VS Code Server缺少cookie包,直接在WSL中安装该依赖:

  • 打开PowerShell或CMD,进入WSL:wsl -d Ubuntu
  • 切换到对应的VS Code Server版本目录(日志中的版本号是19e0f9e681ecb8e5c09d8784acaa601316ca4571):
    cd ~/.vscode-server/bin/19e0f9e681ecb8e5c09d8784acaa601316ca4571
    
  • 使用内置的npm安装缺失的包:
    ./npm install cookie
    
  • 安装完成后,重新启动VS Code并连接WSL。

2. 彻底重置WSL端VS Code Server

如果修复依赖无效,直接删除WSL内的VS Code Server目录,让VS Code重新部署完整的服务端:

  • 进入WSL:wsl -d Ubuntu
  • 删除整个.vscode-server目录:
    rm -rf ~/.vscode-server
    
  • 关闭所有VS Code窗口,重新打开并连接WSL,此时VS Code会自动下载并安装全新的服务端文件。

3. 恢复WSL默认Shell为Bash

针对WSL提示符变为PowerShell的问题,设置默认Shell为bash:

  • 进入WSL:wsl -d Ubuntu
  • 执行命令设置默认Shell:
    sudo update-alternatives --set bash /bin/bash
    
  • 或者在Windows端的PowerShell中执行:
    wsl -d Ubuntu --set-default-shell bash
    

内容的提问来源于stack exchange,提问作者Mike Slinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:07:04