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

自定义GitHub Action运行报MODULE_NOT_FOUND错误该如何解决?

自定义GitHub Action MODULE_NOT_FOUND错误解决方案

Error: Cannot find module '/home/runner/work/GitHubPullAction/GitHubPullAction/node_modules/is-plain-object/dist/is-plain-object.js'. Please verify that the package.json has a valid "main" entry
{
code: 'MODULE_NOT_FOUND',
path: '/home/runner/work/GitHubPullAction/GitHubPullAction/node_modules/is-plain-object/package.json',
requestPath: 'is-plain-object'
}

  • 显式锁定is-plain-object版本
    该报错是@octokit/endpoint依赖的is-plain-object部分版本的main字段配置异常导致,直接在项目的package.json中声明指定版本即可,执行命令:
    npm install is-plain-object@3.0.1 --save
    该版本的入口路径配置稳定,不存在路径指向错误问题。
  • 完善Action的依赖安装逻辑
    如果你的Action仓库没有提交node_modules目录,需要在action.yml的运行步骤中,执行主逻辑前添加依赖安装命令,示例配置片段:
runs:
  using: "composite"
  steps:
    - run: npm ci
      shell: bash
    - run: node index.js
      shell: bash

优先使用npm ci而非npm install,可以完全匹配package-lock.json中的依赖版本,避免版本浮动导致的兼容问题。

  • 用打包工具合并所有依赖
    推荐使用ncc工具将Action代码和所有依赖打包为单文件,彻底规避依赖缺失问题,执行打包命令:
    npx @vercel/ncc build index.js --license licenses.txt
    打包后会生成dist目录,将该目录提交到仓库后,修改action.yml中的入口指向dist/index.js即可,不需要在运行时额外安装依赖。
  • 清理缓存重试
    如果GitHub Action配置了npm缓存,可临时禁用缓存后重新运行,避免缓存的损坏依赖包导致该问题,也可以在安装依赖前添加删除缓存文件的步骤:
    rm -rf node_modules package-lock.json && npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:24:07