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

如何为Turborepo添加外部ESLint插件?

在Turborepo中添加全局ESLint插件的正确步骤

问题根源

你在根目录安装ESLint插件后,子项目的ESLint实例无法找到这些插件——因为ESLint会优先从当前项目的node_modules查找依赖,而共享的eslint-config-custom包如果没有把插件作为自身依赖,子项目就无法加载到规则定义。

解决步骤

  1. 在共享配置包中安装插件
    进入你的eslint-config-custom目录,执行安装命令(以npm为例,pnpm/yarn同理):

    npm install eslint-plugin-import eslint-plugin-unicorn
    

    注意:必须把这些插件安装为dependencies(不是devDependencies),这样所有引用该配置包的子项目才能正确获取到插件。

  2. 更新共享ESLint配置
    修改eslint-config-custom的配置文件(通常是index.js),确保插件和规则正确声明:

    module.exports = {
      extends: ["next", "turbo", "prettier"],
      plugins: ["import", "unicorn"],
      rules: {
        "@next/next/no-html-link-for-pages": "off",
        "import/no-unused-modules": "warn",
        // 可添加unicorn插件的规则示例
        "unicorn/prefer-array-find": "error",
        "unicorn/no-null": "warn"
      },
    };
    
  3. 确保子项目正确引用共享配置
    检查每个应用/包的.eslintrc.js,确认已继承自定义配置:

    module.exports = {
      extends: ["custom"], // 对应eslint-config-custom包的name字段
    };
    

    若你的共享配置包package.json里的name是eslint-config-custom,也可以写成extends: ["eslint-config-custom"]。

  4. 重新安装依赖并清理缓存
    回到monorepo根目录,重新安装所有依赖:

    npm install
    

    清理ESLint缓存避免旧配置残留:

    npx eslint --clear-cache
    
  5. 验证配置生效
    在任意子项目中运行ESLint检查,确认错误消失:

    npx eslint .
    

额外注意事项

  • 不要仅在根目录安装ESLint插件,子项目的ESLint实例无法跨项目读取根目录的node_modules依赖。
  • 若使用pnpm,确保没有特殊的hoisting配置导致插件无法被共享配置包访问,默认hoisting模式即可正常工作。
  • 检查eslint-config-custom的package.json,确保其已被所有子项目作为devDependencies引入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:35:03