如何将一个 Next.js 项目打包成二进制运行

35 天前
 ltaoo1o
背景
我需要使用 `lobe-chat`,尝试过部署到 `vercel` 并配置自定义域名,有时候还是会访问不了,即使能访问速度也有点慢。

直接在本地运行 `lobe-chat` 速度还是非常理想的,但是每次都要打开终端执行命令然后在浏览器打开,非常麻烦。浏览器标签一多也不好找。

所以想能不能实现类似 `Pake` 这种直接把一个网站打包成二进制,双击打开就能用。
试过 `pkg` 这种打二进制的方案,对于 `Next.js` 项目来说坑很多,暂时没解决。想问问还有其他方案吗

或者针对「使用 `lobe-chat`」需求,有什么好的方案吗,要求就是稳定、快、免费。
1640 次点击
所在节点    分享创造
12 条回复
variousdidt
35 天前
自定义域名在 cloudfare 上在包一层,国内就能访问了
variousdidt
35 天前
@variousdidt cloudflare
ltaoo1o
34 天前
感谢,也是一个方案,我去试试。
monmon
34 天前
ltaoo1o
34 天前
@monmon 试了下不行,翻了 ncc issues 别人也遇到了同样的问题,而且解决不了 https://github.com/vercel/ncc/issues/1138
ltaoo1o
34 天前
@li1218040201 最后的回复提到 next build and standalone 我之前也试过,Windows 环境下有问题,也一直解决不了
songray
33 天前
试试 deno compile
ltaoo1o
33 天前
https://github.com/nextjs/deploy-deno 我参考这个项目,能用 deno server.cjs 成功运行打包后的产物,而且也能打包出一个 120MB 的 .exe 文件,但是运行 .exe 文件是报错的。

这种问题没法排查,网上也搜不到类似的。

![Snipaste_2024-11-24_00-12-38.png]( https://image.988589.xyz/api/cfile/AgACAgUAAyEGAASC5r41AAMnZ0H-8DKOcwhIRYEanezZE8FI6AYAApe9MRulbhBWgQNAYq5BdnkBAAMCAAN5AAM2BA)
ltaoo1o
33 天前
贴不了图片,这个是运行时的报错

PS C:\Users\xxx\Documents\temp\my-next-app\.next\standalone> .\server.exe
✅ Granted all env access.
error: Uncaught NotSupported: chdir 'C:\Users\xxx\AppData\Local\Temp\deno-compile-server.exe\standalone': chdir 'C:\Users\xxx\AppData\Local\Temp\deno-compile-server.exe\standalone'
at Process.chdir (ext:deno_fs/30_fs.js:155:3)
at Object.<anonymous> (file:///C:/Users/xxx/AppData/Local/Temp/deno-compile-server.exe/standalone/server.cjs:6:9)
at Object.<anonymous> (file:///C:/Users/xxx/AppData/Local/Temp/deno-compile-server.exe/standalone/server.cjs:39:4)
at Module._compile (node:module:748:34)
at Object.Module._extensions..js (node:module:767:10)
at Module.load (node:module:665:32)
at Function.Module._load (node:module:537:12)
at Object.loadCjsModule (ext:deno_node/02_init.js:64:22)
at loadCjsModule ([ext:ext\node\lib.rs:783:29]:2:32)
at [ext:ext\node\lib.rs:783:29]:3:7
renmu123
31 天前
写个 bat 脚本解决
ltaoo1o
30 天前
@renmu123 写 bat 脚本没问题,但是脚本内容怎么写呢 😂
ltaoo1o
30 天前
@renmu123 哦我理解了你的意思,是把 运行 lobe-chat 的命令写成 .bat 脚本对吗

```
cd /lobe-chat
npm run start
```

是我之前没想到的,确实可以

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

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

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

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

© 2021 V2EX