javascript 下一个. js错误:next/server.js的意外标记“export”

up9lanfz  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(219)

我在尝试yarn dev我的Nextjs项目时得到了Unexpected token 'export'。下面是我得到的错误消息(运行yarn build后)。

> Build error occurred
/Users/.../my-repo/node_modules/next/server.js:1
export { NextRequest } from 'next/dist/server/web/spec-extension/request'
^^^^^^

SyntaxError: Unexpected token 'export'
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1031:15)
    at Module._compile (node:internal/modules/cjs/loader:1065:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/.../my-repo/node_modules/@clerk/nextjs/dist/server/utils.js:5:18)
    at Module._compile (node:internal/modules/cjs/loader:1101:14) {
  type: 'SyntaxError'
}

这是node_modules/next/server.js在我的项目中的样子。

export { NextRequest } from 'next/dist/server/web/spec-extension/request'
export { NextResponse } from 'next/dist/server/web/spec-extension/response'

另外,下面是next.config.js

/** @type {import('next').NextConfig} */
const nextConfig = {
  eslint: {
    dirs: ["."],
  },
  poweredByHeader: false,
  trailingSlash: true,
  basePath: "",
  env: {
    PROJECT_NAME: process.env.PROJECT_NAME,
  },
  reactStrictMode: true,
};

const withBundleAnalyzer = require("@next/bundle-analyzer")({
  enabled: process.env.ANALYZE === "true",
});

module.exports = withBundleAnalyzer(nextConfig);

我已经尝试过使用next-transpile-modules,但这没有帮助,作为参考,我正在(并且需要)使用next的v12.1.0,所以我不能利用v13.1自带的内置transpile支持。
会有什么问题呢?

ssgvzors

ssgvzors1#

我认为您正在导入一些组件,但您使用了错误的语法!您需要将export { NextRequest } from 'next/dist/server/web/spec-extension/request'更改为import { NextRequest } from 'next/dist/server/web/spec-extension/request'
有关NextJS文档的更多信息,请查看文档。

5lhxktic

5lhxktic2#

此问题似乎与您正在使用的Next.js版本有关。错误消息指出“export”关键字是意外的,这表明您安装的Next.js版本不支持使用“export”关键字。
建议将Next.js更新到13.1或更高版本,因为它带有内置的transpile支持。
您也可以尝试使用next-transpile-modules包来传输代码,但是要确保使用的版本与您当前的Next.js版本兼容
另一种选择是使用babel来传递代码,并配置构建过程,以便在构建项目时使用它。

相关问题