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

Windows下@vercel/ncc构建报Module not found错误如何解决

@vercel/ncc 编译抛出 MODULE_NOT_FOUND 错误排查方案

以下按优先级排序排查步骤,覆盖Windows环境下90%以上的同类报错场景:

  • 修正npm脚本路径配置错误
    现有build脚本存在两个Windows路径解析+ESM规范兼容问题:
    1. 输出路径写/dist会被Windows解析为当前盘符根目录(如C:\dist),而非项目内的dist文件夹
    2. ESM规范下不允许省略本地文件的相对路径前缀./,直接写index.js会被ncc识别为第三方依赖去node_modules里查找,必然触发找不到模块的错误
      将package.json里的build脚本替换为以下内容:
    "scripts": {
      "build": "ncc build ./index.js -o dist"
    }
    
  • 清理缓存重装依赖
    路径配置修正后先执行干净重装,避免旧的依赖缓存影响:
    1. 删除项目根目录下的node_modules文件夹、package-lock.json文件
    2. 在项目根目录执行npm install重新安装所有依赖
    3. 跳过npm脚本,直接执行npx ncc build ./index.js -o dist验证编译是否正常,若这一步执行成功,说明问题已解决。
  • 修复ESM模式兼容问题
    若上述步骤仍报错,是因为当前稳定版@vercel/ncc对package.json中设置"type": "module"的原生ESM项目存在解析bug,二选一修复即可:
    1. 兼容方案:将入口文件index.js重命名为index.mjs,同步把build脚本的入口路径改为./index.mjs,不需要修改type配置
    2. 稳定方案:删除package.json中的"type": "module"字段,将index.js中的ESM import语法改为CommonJS的require语法,这也是GitHub官方JavaScript Action示例默认采用的写法,和ncc的兼容性最好。
  • 排查Windows系统路径异常
    若以上操作都无效,检查项目存放路径:
    1. 不要把项目放在需要管理员权限的系统目录(如C:\Program Files、C:\Windows路径下)
    2. 项目所在路径不要包含中文、全角空格、特殊符号,这类字符会导致Windows终端的路径解析出错,把项目移动到纯英文路径(如C:\dev\your-custom-action)后重试即可。

编译校验:执行成功后项目根目录会生成dist文件夹,内部的index.js就是打包后的单文件产物,后续action.yml配置中指定入口为dist/index.js即可正常运行,不需要提交node_modules目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:27:19