Neovim中安装typescript-language-server失败求助
解决Mason安装typescript-language-server报错npm退出码1的问题
基础环境排查
- 验证本地npm可用性:终端执行
npm -v,确认npm可正常运行。若npm损坏,执行npm install -g npm更新修复。 - 检查npm registry连通性:执行
npm ping,若无法访问,切换国内镜像:npm config set registry https://registry.npmmirror.com/,再重试安装。
Mason专属调试步骤
- 单独安装目标服务:在Neovim中执行
:MasonInstall typescript-language-server,避开:MasonInstallAll的批量干扰,查看具体报错信息。 - 查看安装日志:执行
:MasonLog,定位typescript-language-server安装流程中的详细错误输出(如权限问题、依赖缺失等)。
NvChad配置冲突检查
1. custom/plugins.lua 中Mason配置
确保Mason配置未限制npm或设置错误registry:
return { "williamboman/mason.nvim", opts = { ensure_installed = { "typescript-language-server", -- 其他需要的LSP/工具 }, -- 避免添加错误的npm相关配置项 }, }
2. configs/lspconfig.lua 中tsserver配置
确认无提前加载或配置异常:
local lspconfig = require("lspconfig") local util = require("lspconfig/util") lspconfig.tsserver.setup({ on_attach = function(client, bufnr) -- 按需禁用tsserver格式化(若使用prettier等工具) client.server_capabilities.documentFormattingProvider = false end, root_dir = util.root_pattern("package.json", "tsconfig.json", ".git"), })
3. custom/chadrc.lua 中LSP配置
确保未禁用Mason或修改默认安装流程:
M.lsp = { setup_handlers = true, config = { -- 确保tsserver在LSP配置列表内 tsserver = {}, }, }
权限问题处理
若日志显示权限错误(如无法写入node_modules):
- 不要用sudo运行Neovim,执行
sudo chown -R $USER:$USER ~/.npm修复npm目录权限。 - 或配置npm全局安装无权限模式:
npm config set prefix ~/.local,并将~/.local/bin加入系统环境变量。
手动安装临时方案
若以上方法无效,可手动安装后让Mason识别:
- 终端执行
npm install -g typescript-language-server - Neovim中执行
:Mason,typescript-language-server会显示为已安装状态。
内容的提问来源于stack exchange,提问作者AliAshooriyoon
相关产品推荐
相关产品推荐

