修正cloudflare下libsql依赖问题

This commit is contained in:
mtvpls
2026-07-21 23:28:01 +08:00
parent 996740a107
commit b21e7d9549
+21
View File
@@ -34,10 +34,31 @@ const createNextConfig = (phase) => {
reactStrictMode: false, reactStrictMode: false,
swcMinify: true, swcMinify: true,
// OpenNext/esbuild 使用 workerd condition 解析依赖。
// @libsql/* 等包有 workerd 专用入口(如 web.cjs),Next NFT 默认只追踪 node 入口,
// 导致 .open-next 里缺少 web.cjs 并报 Could not resolve "@libsql/isomorphic-ws"。
// 声明为 server external 后,OpenNext 会完整拷贝这些包并应用 workerd 导出。
// 参见: https://opennext.js.org/cloudflare/howtos/workerd
serverExternalPackages: [
'@libsql/client',
'@libsql/hrana-client',
'@libsql/isomorphic-ws',
'@libsql/isomorphic-fetch',
'libsql',
],
experimental: { experimental: {
instrumentationHook: process.env.NODE_ENV === 'production' && !isEdgeBuild, instrumentationHook: process.env.NODE_ENV === 'production' && !isEdgeBuild,
optimizePackageImports: optimizedPackageImports, optimizePackageImports: optimizedPackageImports,
webpackBuildWorker: !isEdgeBuild, webpackBuildWorker: !isEdgeBuild,
// Next 14.2 仍可能读取此字段;与 serverExternalPackages 保持一致
serverComponentsExternalPackages: [
'@libsql/client',
'@libsql/hrana-client',
'@libsql/isomorphic-ws',
'@libsql/isomorphic-fetch',
'libsql',
],
}, },
// Uncoment to add domain whitelist // Uncoment to add domain whitelist