Next.js+Serverless接入Sentry.io构建无法解析webpack该如何解决?
问题根因
- 你使用的
@sentry/nextjs@6.11.0版本过旧,对Next.js内置的webpack 5、serverless部署模式适配存在缺陷,触发webpack缺失报错 - 手动安装独立webpack包和Next.js内置webpack版本冲突,且触发了macOS专属原生模块
fsevents在非macOS构建环境下的二进制解析失败问题
修复步骤
- 第一步:先卸载手动安装的独立webpack包,Next.js 11+已经内置对应webpack版本,无需额外安装
npm uninstall --save-dev webpack - 第二步:两种适配方案二选一即可
方案1(优先推荐):升级@sentry/nextjs到兼容webpack5和serverless模式的稳定版本
方案2(不升级Sentry版本可选):修改npm install @sentry/nextjs@latestnext.config.js添加兼容配置,修改后配置如下:const moduleExports = { target: 'serverless', webpack: (config, { isServer }) => { // 忽略fsevents模块,避免非macOS环境解析失败 config.resolve.fallback = { ...config.resolve.fallback, fsevents: false } // 适配Sentry 6.x版本的serverless打包逻辑 if (isServer) { config.externals = [...config.externals, '@sentry/nextjs'] } return config } }; module.exports = moduleExports; - 第三步:清理依赖缓存,避免历史残留冲突
rm -rf node_modules package-lock.json npm install - 第四步:重新执行构建验证
npm run build
内容的提问来源于stack exchange,提问作者Vincent J
相关产品推荐
相关产品推荐

