nextjs 全栈项目可以打包成 Electron 吗

57 天前
 szuwl

我写了一个 nextjs 的全栈应用,用了 nextjs 的 Api Routing 并且有一个页面,可以打包成 electron 应用吗,想打包后直接运行在本地。

1794 次点击
所在节点    Next.js
12 条回复
learnshare
57 天前
没有打包经验。
但 Next.js 可以编译为 standalone 模式,应该能够在 Electron 中一起启动。

https://nextjs.org/docs/pages/api-reference/config/next-config-js/output

需要注意,public 目录和编译后的 .next/static 目录,都需要复制到 .next/standalone/ 中的 .next 目录下。
ltaoo1o
57 天前
我之前也有个一样的需求,把 LobeChat 打包成本地应用。

我是用 tauri 实现的,启动应用后,在内部会运行一个终端,在终端内,执行了 `next start`,打开的窗口就访问 start 的地址,比如 `127.0.0.1:8000` 地址,用起来还行。

但是这个实现,需要环境有 `nodejs`,等于你打包好,发给别人,别人可能用不了。
szuwl
57 天前
@ltaoo1o 这样是可以解决,但是我希望能直接在机器上点击 exe 运行,现在就只有 electron 可以满足,但是不知道该怎么打包进去
ETiV
57 天前
把 server 端写好,用 UtilityProcess.fork 拉起来

打包工具很多,electron vite builder 什么的
musi
57 天前
理论上是可以的,next 后端也是 nodejs ,electron 也有 nodejs
dreasky
57 天前
nextjs output: 'export' 纯静态模式可以 , 用到后端直接 electron main 新拉一个线程跑 nextjs
ooxiaoming
57 天前
@dreasky 应该就这个最可行了
ltaoo1o
56 天前
@szuwl 我的实现可以双击 exe 运行,用 tauri 就是体积小。可以参考下 https://github.com/ltaoo/LobeChatClient
szuwl
56 天前
@ltaoo1o 这样必须要求机器有 nodejs 环境,这样也不合适
ltaoo1o
56 天前
@szuwl #9 那你找到方法可以提醒我下,这个问题我之前研究了很久,包括 pkg 等,对于 nextjs 项目我没找到好的方案。
szuwl
55 天前
@dreasky 无法使用纯静态模式,主页是 ssr 渲染的
cccn
40 天前
可以,但是不建议,因为很多功能多此一举。

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

https://yangjunhui.monster/t/1124607

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

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

© 2021 V2EX