unhandledRejection ReferenceError:未定义标头 - 使用 AWS codebuild 构建 Next.js 14 应用程序

问题描述 投票:0回答:1

我有一个 Next.js 应用程序,多年来我一直使用 AWS codebuild 构建该应用程序,没有出现任何问题。

我最近将项目更新到 Next.js 14(从 13 开始),现在构建失败并出现以下错误:

unhandledRejection ReferenceError: Headers is not defined
    at Object.<anonymous> (/codebuild/output/src3629032198/src/node_modules/next/dist/server/web/spec-extension/adapters/headers.js:32:30)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Module.require (node:internal/modules/cjs/loader:1100:19)
    at Module.mod.require (/codebuild/output/src3629032198/src/node_modules/next/dist/server/require-hook.js:64:28)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/codebuild/output/src3629032198/src/node_modules/next/dist/server/api-utils/index.js:63:18)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)

这似乎是 Next.js 代码库本身的错误。

我自己的代码在任何地方都没有引用“标题”。

还有其他人遇到过这个问题吗?有人可以建议任何解决方案吗?

可能有用的信息

我的 package.json NPM 构建脚本是:

"build": "NEXT_PUBLIC_VERSION=$npm_package_version NEXT_PUBLIC_DATE=$(date +%s) next build",

我的 buildspec.yml 文件是:

version: 0.2
phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm run build
artifacts:
  files:
    - '**/*'
  base-directory: build

我的 next.config.js 是:

const isLocal = process.env.NODE_ENV === 'development';

const nextConfig = {
  trailingSlash: true,

  // Build settings
  output: 'export',
  distDir: 'build',

  // Handle SVG imports
  webpack(config) {
    config.module.rules.push({
      test: /\.svg$/i,
      issuer: /\.[jt]sx?$/,
      use: '@svgr/webpack',
    });
    return config;
  },

  // SCSS options
  sassOptions: {
    logger: {
      warn: function (message) {
        console.warn(message);
      },
      debug: function (message) {
        console.log(message);
      },
    },
  },

  // Define whether to remove console.log statements from the deployed code
  compiler: {
    removeConsole: isLocal ? false : true,
  },
};

module.exports = nextConfig;

注:

成功使用 Next.js 13 时,我的构建脚本末尾包含“&& next export -o build”:

"build": "NEXT_PUBLIC_VERSION=$npm_package_version NEXT_PUBLIC_DATE=$(date +%s) next build && next export -o build",

但是升级指南告诉我将其移至 next.config.js:

output: 'export',
distDir: 'build',
javascript amazon-web-services next.js aws-codebuild
1个回答
0
投票

当您尝试在本地计算机上创建构建时,它是否有效? 我面临同样的问题,但仅限于生产服务器

© www.soinside.com 2019 - 2024. All rights reserved.