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

Node TS项目ESlint本地正常但Github Actions执行失败求助

排查与解决GitHub Actions中ESLint无法读取/server/tsconfig.json的问题

1. 确认GitHub Actions的工作目录与执行命令

本地是在/server目录下执行ESLint,而GitHub Actions默认在项目根目录运行,路径差异会导致找不到tsconfig。

  • 在Actions的lint步骤中指定工作目录为server:
    - name: Run ESLint on server
      working-directory: ./server
      run: npm run lint
    
  • 或者在执行命令前切换目录:
    - name: Run ESLint on server
      run: |
        cd server
        npm run lint
    
    避免直接在根目录执行eslint server/,这种方式会让ESLint优先读取根目录的配置,而非server目录下的tsconfig。

2. 修正ESLint配置中的tsconfig路径

如果你的ESLint配置是.json格式,无法使用动态路径变量,建议改成.js格式(.eslintrc.js),然后明确指定tsconfig的根目录:

module.exports = {
  parser: '@typescript-eslint/parser',
  parserOptions: {
    project: './tsconfig.json',
    tsconfigRootDir: __dirname // 指向当前配置文件所在的/server目录
  },
  // 其他配置...
};

这样无论在哪个目录执行ESLint,都会以/server为根目录查找tsconfig.json。

3. 检查GitHub Actions的checkout完整性

确保runner拉取了完整的项目文件,避免因为浅克隆导致tsconfig.json缺失:

- uses: actions/checkout@v4
  # 不要添加depth参数,默认会拉取完整仓库

4. 验证runner中的文件结构

在Actions中添加一个调试步骤,打印/server目录的文件列表,确认tsconfig.json存在:

- name: Verify server directory files
  working-directory: ./server
  run: ls -la

如果输出中没有tsconfig.json,说明代码拉取有问题,需要检查仓库分支或checkout配置。

5. 确保依赖安装与脚本执行的目录一致性

如果/server目录有独立的package.json,要在server目录下安装依赖,避免根目录安装导致的依赖缺失或配置读取错误:

- name: Install server dependencies
  working-directory: ./server
  run: npm install

- name: Run ESLint
  working-directory: ./server
  run: npm run lint

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:25:14