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

Neovim中none-ls的eslint_d异常及oxlint/biome切换问题

问题解决:Neovim none-ls eslint_d异常及oxlint/biome配置错误

一、eslint_d 异常原因及修复

报错本质

“failed to decode json: Expected value but found invalid token at character 1” 核心是eslint_d返回的结果不是合法JSON格式,导致none-ls无法解析,常见触发原因:

  • 项目.eslintrc系列配置文件存在语法错误(比如JSON格式漏逗号、引号不匹配,或JS配置文件有未闭合的括号)
  • 全局安装的eslint_d与项目本地eslint版本冲突,执行时输出错误日志而非标准JSON
  • eslint_d未正确识别文件类型,或none-ls调用参数有误

修复步骤

  1. 终端验证执行结果
    进入项目目录,直接在终端运行:

    eslint_d your-test-file.js
    

    若输出不是标准JSON而是报错信息,优先修复eslint配置或重装工具:

    # 全局重装eslint_d
    npm install -g eslint_d
    # 或强制使用项目本地版本
    npx eslint_d your-test-file.js
    
  2. 修正none-ls配置
    确保eslint_d的导入方式正确(结合none-ls-extras),可显式指定支持的文件类型:

    require("none-ls.diagnostics.eslint_d").with({
        filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact", "json" },
        -- 若Mason安装的路径未在系统PATH中,可手动指定执行文件路径
        -- command = vim.fn.stdpath("data") .. "/mason/bin/eslint_d"
    })
    
  3. 排查项目配置文件
    检查项目根目录的.eslintrc.json/.eslintrc.js,修复JSON格式错误或JS语法问题。

二、oxlint/biome 正确配置方法

报错原因

“failed to load builtin oxlint” 错误的核心问题:

  • oxlint/biome不属于none-ls内置源,必须从none-ls-extras.nvim导入,而非null_ls.builtins
  • 原配置存在Lua语法错误(注释后的null_ls.builtins.diagnostics.biome行末尾缺少逗号,导致列表解析失败)

正确配置示例

return {
    "nvimtools/none-ls.nvim",
    dependencies = {
        "nvimtools/none-ls-extras.nvim",
    },
    config = function()
        local null_ls = require("null-ls")
        null_ls.setup({
            sources = {
                -- 使用oxlint(从none-ls-extras导入)
                require("none-ls.diagnostics.oxlint"),
                -- 或切换为biome(二选一,注释另一个)
                -- require("none-ls.diagnostics.biome"),

                null_ls.builtins.formatting.stylua,
                null_ls.builtins.formatting.prettier,
                null_ls.builtins.formatting.black,
                null_ls.builtins.formatting.isort,
                null_ls.builtins.formatting.clang_format,
                null_ls.builtins.formatting.google_java_format,
                null_ls.builtins.diagnostics.checkstyle,
                null_ls.builtins.diagnostics.cppcheck,
                null_ls.builtins.diagnostics.stylelint,
            },
        })
        vim.keymap.set("n", "<leader>gf", vim.lsp.buf.format, {})
    end,
}

额外注意事项

  • 确保已通过Mason成功安装工具:在Neovim中执行:MasonInstall oxlint或:MasonInstall biome
  • 若仍无法加载,可显式指定可执行文件路径:
    require("none-ls.diagnostics.oxlint").with({
        command = vim.fn.stdpath("data") .. "/mason/bin/oxlint"
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:34:57