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

WSL下LazyVim中Typescript LSP无法附着且提示模块缺失如何解决?

前端LSP模块找不到的排查与解决思路

问题现象

使用LazyVim(WSL Ubuntu环境)开发时,JS/TS的Typescript LSP持续报错,:LspLog输出错误如下:

[ERROR][2024-06-18 21:41:58] .../vim/lsp/rpc.lua:734    "rpc"   "/home/temo/.local/share/nvim/mason/bin/typescript-language-server" "stderr"    "node:internal/modules/cjs/loader:1215
 throw err;
 ^

Error: Cannot find module '/home/tirivashe/.local/share/nvim/mason/typescript-language-server/lib/cli.mjs'
  at Module._resolveFilename (node:internal/modules/cjs/loader:1212:15)
  at Module._load (node:internal/modules/cjs/loader:1038:27)
  at wrapModuleLoad (node:internal/modules/cjs/loader:212:19)
  at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:158:5)
  at node:internal/main/run_main_module:30:49 {
 code: 'MODULE_NOT_FOUND',
 requireStack: []
}

Node.js v22.3.0

Tailwind、CSS Modules、CSS等其他前端LSP均出现同类「找不到对应模块」错误,但Go、Lua等非前端LSP可正常工作。

排查与解决步骤

  • 检查Mason路径的权限与用户一致性
    错误日志显示LSP尝试读取/home/tirivashe/.local/share/nvim/mason/路径,但执行Neovim的用户是temo,存在用户名不一致问题。先执行ls -ld /home/tirivashe/.local/share/nvim/mason/查看权限,若当前用户无读写权限,运行sudo chown -R temo:temo /home/tirivashe/.local/share/nvim/mason/修正权限;或确认是否因用户切换导致路径混淆,统一使用当前用户的Mason路径。
  • 重装前端类LSP
    在Neovim中执行:MasonUninstall typescript-language-server tailwindcss-language-server cssmodules-language-server css-lsp卸载报错的LSP,再执行:MasonInstall重新安装。安装完成后检查/home/temo/.local/share/nvim/mason/packages/下是否存在对应LSP的完整文件(尤其是lib/cli.mjs这类入口文件)。
  • 验证Node.js版本兼容性
    当前使用Node.js v22.3.0,部分前端LSP依赖可能暂不兼容最新版本。可通过nvm切换到LTS版本(如v20.x)测试:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    nvm install 20
    nvm use 20
    
    重启Neovim后检查LSP状态。
  • 手动指定LSP命令路径
    Mason生成的启动脚本可能指向错误路径,可在LazyVim配置文件(如~/.config/nvim/lua/plugins/lsp.lua)中手动指定LSP入口:
    return {
      "neovim/nvim-lspconfig",
      opts = {
        servers = {
          tsserver = {
            cmd = { "/home/temo/.local/share/nvim/mason/packages/typescript-language-server/node_modules/.bin/typescript-language-server", "--stdio" },
          },
          tailwindcss = {
            cmd = { "/home/temo/.local/share/nvim/mason/packages/tailwindcss-language-server/node_modules/.bin/tailwindcss-language-server", "--stdio" },
          },
          cssmodules_ls = {
            cmd = { "/home/temo/.local/share/nvim/mason/packages/cssmodules-language-server/node_modules/.bin/cssmodules-language-server", "--stdio" },
          },
          cssls = {
            cmd = { "/home/temo/.local/share/nvim/mason/packages/css-lsp/node_modules/.bin/css-languageserver", "--stdio" },
          },
        },
      },
    }
    
    保存后重启Neovim加载配置。
  • 排查WSL文件系统挂载问题
    若Mason安装路径位于Windows挂载目录(如/mnt/c/),可能出现权限或路径解析异常。确保Neovim配置及Mason路径都在WSL原生文件系统(如/home/temo/下),避免跨文件系统的路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:16:11