即刻App年轻人的同好社区
下载
App内打开
savokiss_
2年前
有小伙伴问到 Next.js 部署在 Cloudflare Pages 上的问题。刚好最近踩了不少,就总结一下。
一个崭新的 Next.js 项目要部署到 Pages 上可能会遇到的坑,起码能节省几个小时😂:

部署配置 ⚙️

默认不需要安装 @cloudflare/next-on-pages,选择 Next.js 预设即可,后期需要可以参考文末链接自行安装。

兼容 Flag 🚩

必须在 Pages 后台添加兼容 Node.js flag: nodejs_compat。路径:设置->函数->兼容性标志。

当然如果有 wrangler.toml 也推荐添加。

Runtime 设置 ⏱️

针对 API 路由和页面,只要是不能 Prerender 的,都需要添加如下代码:
```js
export const runtime = 'edge';
```
Next-Auth 集成 🔐

有需要用 Next-Auth 登录的小伙伴注意了!直接安装 next-auth@beta,目前是 V5 版本,默认 latest 通道的 V4 版本是不支持 edge 环境的,不用浪费时间了。

Crypto 模块 🔒

如果要用到 crypto 模块,不能引入 node:crypto,直接用 crypto 模块即可(全局对象),但是可用功能属于一个子集,一般要调用 crypto.subtle 中的功能,一些加密算法可以实现,但是与 node crypto API 不同,可以用 GPT 生成下。

还有其他功能需要注意:

- 更推荐使用 App Router 🛣️
- Image 组件的图片优化是不生效的 🖼️,官方说可以自定义 Loader 改用 CF 上的图片优化。
- App Router 要自己实现 NotFound 页面 🚫。
- ISR 基本不支持,降级为 SSG ⬇️。
1012

来自圈子

圈子图片

工程师的日常

432468人已经加入