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

Netlify部署失败:Build script returned non-zero exit code:2

问题原因

外层提示Build script returned non-zero exit code: 2是Netlify对构建脚本执行失败的通用报错,真正的触发点是日志里明确抛出的sh: 1: tsc: not found——构建环境执行编译命令时找不到TypeScript的执行程序tsc,具体诱因通常是两点:

  • 本地开发时全局安装了TypeScript,所以本地执行tsc命令正常,但没有把typescript包写入项目的package.json依赖列表,Netlify构建环境不会全局预装TypeScript,拉取代码安装依赖时就不会装这个包
  • 把typescript放在了devDependencies开发依赖列表里,但Netlify默认生产构建时执行npm install会默认跳过开发依赖安装,导致项目内的typescript包没被装上,找不到对应的执行命令
修复步骤

按顺序操作即可解决:

  1. 补全项目依赖
    在本地项目根目录执行命令,将TypeScript作为项目开发依赖安装,不要依赖全局环境的包:
    npm install typescript --save-dev
    安装完成后检查package.json的devDependencies字段,确认存在typescript的版本声明,同时确保package.json、package-lock.json文件都被提交到Git仓库,不要被.gitignore规则忽略。
  2. 调整构建配置,二选一即可
    • 方案1(更稳妥,不需要改Netlify后台配置):修改package.json里的build脚本,直接通过npx调用项目本地依赖里的tsc,避免找不到全局命令的问题,修改后脚本如下:
      {
        "scripts": {
          "build": "npx tsc && vite build"
        }
      }
      
    • 方案2:修改Netlify站点配置,进入站点设置的构建环境变量页面,新增环境变量NPM_FLAGS,值设为--include=dev,让构建时安装依赖同时拉取开发依赖列表里的包。如果使用的是npm v6及更早版本,新增环境变量NPM_CONFIG_PRODUCTION,值设为false即可。
  3. 清除缓存重新部署
    进入Netlify站点的部署列表页,选择清除缓存后重新触发部署,避免旧的错误缓存干扰构建流程。

内容的提问来源于stack exchange,提问作者Uvais wali Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:54:20