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

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识别:

  1. 终端执行npm install -g typescript-language-server
  2. Neovim中执行:Mason,typescript-language-server会显示为已安装状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:09:53