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

NextJS通过Webhook触发构建失败问题求助

NextJS API路由触发Webhook构建失败问题

核心现象

通过NextJS API路由接收Contentful Webhook触发构建时失败,但手动执行npm run build可正常完成构建,且相同的Webhook在另一完全相同代码的项目中能正常触发构建。

环境参数

  • API文件路径:/pages/api/my-path-name.js
  • Node版本:v18.15.0
  • NextJS版本:13.4.7

API路由代码

const { exec } = require('child_process')

// 这段代码在我的Express应用中能正常执行构建,无任何错误(app.post('/hook', (req, res) => ...))
export default function hook(req, res) {
    if (req.method !== 'POST') {
        res.status(405).send({ message: '仅允许POST请求' })
        return
    }
    
    console.log("收到POST请求")

    // 执行npm run build命令
    const buildProcess = exec('npm run build');

    // 记录构建过程的输出内容
    buildProcess.stdout.on('data', (data) => {
        console.log(data);
    });

    // 记录构建过程中产生的错误信息
    buildProcess.stderr.on('data', (data) => {
        console.error(data);
    });

    // 构建完成后的回调处理
    buildProcess.on('close', (code) => {
        if (code === 0) {
            console.log('构建过程执行成功。');
            res.status = 200
            res.send('success')
            return
        } else {
            console.error(`构建过程退出,错误码:${code}。`);
            res.status = 405
            res.end()
            return
        }
    });

    res.status = 405
    res.end()
    return
}

排查情况

  • Webhook本身运行正常,Contentful返回状态码200的成功日志
  • exec('npm run build')确实被调用,但以错误码1退出,错误信息见附件图片
  • 曾怀疑执行路径错误,尝试exec('npm run --prefix ../../ build'),问题未解决,反而验证当前执行路径正确

补充异常

开发模式下收到非标准NODE_ENV警告,但未在任何地方设置NODE_ENV,项目目录中也无相关配置:

- warn 您正在使用环境中非标准的"NODE_ENV"值。这会导致项目出现不一致性,强烈建议不要这样做。

项目配置文件

package.json

{
  "name": "smina-shop",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@contentful/rich-text-react-renderer": "^15.17.0",
    "autoprefixer": "10.4.14",
    "axios": "^1.5.0",
    "contentful": "^10.4.0",
    "dotenv": "^16.3.1",
    "formidable": "^3.5.1",
    "friendly-challenge": "^0.9.13",
    "next": "12.2.2",
    "nodemailer": "^6.9.4",
    "postcss": "8.4.27",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "swiper": "^8.4.7",
    "tailwindcss": "3.3.3"
  }
}

next.config.js

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
    // output: 'export',
    // 可选:为所有路径添加尾部斜杠 `/about` -> `/about/`
    // trailingSlash: true,
    // 可选:修改输出目录 `out` -> `dist`
    // distDir: '',
    assetPrefix: './'
}

module.exports = nextConfig

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:18:14