莫名环境坏掉了……

34 天前
 BeijingBaby

可能升级了什么系统的依赖,最简单的项目都跑不起来了郁闷,看日志也找不出问题。

刚开始还以为项目中更改了什么导致的

尝试创建新项目:

npx create-next-app@latest

之后执行 build

npm run build --verbose

    ~/D/t/my-app on main  npm run build --verbose                                                                                          16:25:45
    npm verbose cli /opt/homebrew/Cellar/node/23.2.0/bin/node /opt/homebrew/bin/npm
    npm info using npm@10.9.0
    npm info using node@v23.2.0
    npm verbose title npm run build
    npm verbose argv "run" "build" "--loglevel" "verbose"
    npm verbose logfile logs-max:10 dir:/Users/xxx/.npm/_logs/2024-11-15T08_25_54_292Z-
    npm verbose logfile /Users/xxx/.npm/_logs/2024-11-15T08_25_54_292Z-debug-0.log

    > my-app@0.1.0 build
    > next build

       ▲ Next.js 15.0.3

       Creating an optimized production build ...
     ✓ Compiled successfully
     ✓ Linting and checking validity of types    
       Collecting page data  ..Error: Failed to collect configuration for /
        at <unknown> (/Users/xxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1131:23)
        at async Span.traceAsyncFn (/Users/xxx/Downloads/tt2/my-app/node_modules/next/dist/trace/trace.js:153:20) {
      [cause]: TypeError: e[o] is not a function
          at Function.t (/Users/xxx/Downloads/tt2/my-app/.next/server/webpack-runtime.js:1:127)
          at async getLayoutOrPageModule (/Users/xxx/Downloads/tt2/my-app/node_modules/next/dist/server/lib/app-dir-module.js:37:15)
          at async collectAppPageSegments (/Users/xxx/Downloads/tt2/my-app/node_modules/next/dist/build/segment-config/app/app-segments.js:50:45)
          at async (/Users/xxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1129:28)
          at async Span.traceAsyncFn (/Users/xxx/Downloads/tt2/my-app/node_modules/next/dist/trace/trace.js:153:20)
    }

    > Build error occurred
    Error: Failed to collect page data for /
        at <unknown> (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1234:15) {
      type: 'Error'
    }
    npm verbose cwd /Users/xxx/Downloads/tt2/my-app
    npm verbose os Darwin 22.6.0
    npm verbose node v23.2.0
    npm verbose npm  v10.9.0
    npm verbose exit 1
    npm verbose code 1

用不同的 node 版本也试过了依旧如此,有遇到类似的吗?

有时候是出现这个:全新项目什么都不改。

 npm run build                                                                                                    16:32:55

> my-app@0.1.0 build
> next build

   ▲ Next.js 15.0.3

   Creating an optimized production build ...
Failed to compile.

./src/app/page.tsx + 1 modules
Unexpected end of JSON input


> Build failed because of webpack errors
2787 次点击
所在节点    Node.js
18 条回复
Richared
34 天前
我写 Java 的,对不起看见 npm 就头大,这玩意刚才还能跑,下一秒能不能起来就另说了。整不明白。比不上 maven 一根毛。
yhl601125163
34 天前
看着好像是页面生成的时候,服务端数据获取有问题
wgbx
34 天前
依赖对等出问题了,像 next 这种框架级别的,升级包要一起来,单升级一个肯定是不行的,改回去吧,别折腾了,next 顶层框架绑定 react ,react-router ,webpack 等,这种都是对下游依赖有版本依赖锁关系
dcsuibian
34 天前
全新项目都出问题的话,可能是 node 本身出问题了,要不把 node 卸载装个 nvm 试试?当然我最推荐 fnm
Plumbiu
34 天前
https://github.com/vercel/next.js/issues/72544 ,node 版本太新了,降低成 20 或者 22 吧
BeijingBaby
34 天前
@yhl601125163 静态的没有获取数据,比较头疼

@wgbx

@dcsuibian

比较头疼,用不同 node 以及重装 node 都试过了。尝试删除这一个页面的代码,最后精简到:

```
import Image from "next/image";

export default function Home() {
return (
<div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]">
<Image
aria-hidden
src="/globe.svg"
alt="Globe icon"
width={16}
height={16}
/>
<h1>hello</h1>
</div>
);
}

```

构建成功



```
import Image from "next/image";

export default function Home() {
return (
<div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]">
<Image
aria-hidden
src="/globe.svg"
alt="Globe icon"
width={16}
height={16}
/>
<h1>中文</h1>
</div>
);
}

```构建失败

就因为有中文,刚开始以为和编码什么的有关系,但是:

```
export default function Home() {
return (
<div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]">
<h1>中文</h1>
</div>
);
}
```
构建成功

真不知道啥问题了,估计的重做整个环境。
BeijingBaby
34 天前
@Plumbiu 是的也降级到 22 或者 20 都尝试过,结果也是有问题的

```

⋊> ~/D/t/my-app on main ⨯ npm run build --verbose 17:34:00
npm verbose cli /opt/homebrew/Cellar/node@20/20.18.0_2/bin/node /opt/homebrew/bin/npm
npm info using npm@10.8.2
npm info using node@v20.18.0
npm verbose title npm run build
npm verbose argv "run" "build" "--loglevel" "verbose"
npm verbose logfile logs-max:10 dir:/Users/xxxx/.npm/_logs/2024-11-15T09_34_06_105Z-
npm verbose logfile /Users/xxxx/.npm/_logs/2024-11-15T09_34_06_105Z-debug-0.log

> my-app@0.1.0 build
> next build

▲ Next.js 15.0.3

Creating an optimized production build ...
✓ Compiled successfully
✓ Linting and checking validity of types
Collecting page data ..Error: Failed to collect configuration for /
at <unknown> (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1131:23)
at async Span.traceAsyncFn (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/trace/trace.js:153:20) {
[cause]: TypeError: e[o] is not a function
at Function.t (/Users/xxxx/Downloads/tt2/my-app/.next/server/webpack-runtime.js:1:127)
at async getLayoutOrPageModule (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/server/lib/app-dir-module.js:37:15)
at async collectAppPageSegments (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/segment-config/app/app-segments.js:50:45)
at async (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1129:28)
at async Span.traceAsyncFn (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/trace/trace.js:153:20)
}

> Build error occurred
Error: Failed to collect page data for /
at <unknown> (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1234:15) {
type: 'Error'
}
npm verbose cwd /Users/xxxx/Downloads/tt2/my-app
npm verbose os Darwin 22.6.0
npm verbose node v20.18.0
npm verbose npm v10.8.2
npm verbose exit 1
```
dcsuibian
34 天前
把整个项目发出来看看,我来构建试试
BeijingBaby
34 天前
@dcsuibian #8

https://github.com/thebetterdev/nextjs-app

正常情况下肯定可以编译成功,这两天可能系统不小心升级了什么导致无法 build 了,比较奇怪,node 不同版本都重装试过了。

以上代码,在我这里
npm run build


> my-app@0.1.0 build
> next build

▲ Next.js 15.0.3

Creating an optimized production build ...
✓ Compiled successfully
✓ Linting and checking validity of types
Collecting page data ..Error: Failed to collect configuration for /
at <unknown> (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1131:23)
at async Span.traceAsyncFn (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/trace/trace.js:153:20) {
[cause]: TypeError: e[o] is not a function
at Function.t (/Users/xxxx/Downloads/tt2/my-app/.next/server/webpack-runtime.js:1:127)
at async getLayoutOrPageModule (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/server/lib/app-dir-module.js:37:15)
at async collectAppPageSegments (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/segment-config/app/app-segments.js:50:45)
at async (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1129:28)
at async Span.traceAsyncFn (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/trace/trace.js:153:20)
}

> Build error occurred
Error: Failed to collect page data for /
at <unknown> (/Users/xxxx/Downloads/tt2/my-app/node_modules/next/dist/build/utils.js:1234:15) {
type: 'Error'
}
BeijingBaby
34 天前
@dcsuibian #8

npm info using npm@10.8.2
npm info using node@v20.18.0

同样的,22 、23 版本都试过,一样的错误。

依赖也重新安装过,包括更换为官方镜像。
BeijingBaby
34 天前
@dcsuibian #8 另外的线索就是
npm run dev 一点问题都没有,只有 build 出错
alvinbone88
34 天前
nodejs 23.2.0 确认可以复现,这应该是 next.js 的 bug ,降级到 nodejs 22 并删掉 .next/cache 可以解决
BeijingBaby
34 天前
@alvinbone88 感谢,确认可复现那确定不是我折腾环境导致的了,估计是在 23 版下有 bug 。
然后我用 22 、20 版本的时候,没有删除.next/cache 导致还是 23 版本的缓存……
TomVista
34 天前
spkingr
32 天前
依赖版本出问题了,我写写后端的,我觉得吧:npm 就是个超级大垃圾!我用 pnpm 。
victimsss
27 天前
npm 是真的垃圾,连依赖报错都垃圾
xingguang
8 天前
@BeijingBaby #13 奇数版本的 node 一般还是不要用了,有些功能都是不稳定的
DICK23
13 小时 25 分钟前
遇到这类奇怪问题都都是直接删.next 文件夹

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX