You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js执行yarn build报错:@mongodb-js/zstd及snappy模块缺失

Next.js构建失败:MongoDB相关原生依赖缺失问题

问题详情

执行yarn build(即next build)时出现大量模块找不到错误,但yarn dev运行完全正常。已尝试yarn cache clean --force、删除node_modules后重新yarn install,问题仍未解决。

错误日志

./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.win32-x64-msvc.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve '@mongodb-js/zstd-win32-x64-msvc' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.darwin-x64.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve '@mongodb-js/zstd-darwin-x64' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.darwin-arm64.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve '@mongodb-js/zstd-darwin-arm64' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.linux-x64-musl.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.linux-x64-gnu.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.linux-arm64-musl.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve '@mongodb-js/zstd-linux-arm64-musl' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.linux-arm64-gnu.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve '@mongodb-js/zstd-linux-arm64-gnu' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve './zstd.linux-arm-gnueabihf.node' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/@mongodb-js/zstd/index.js
Module not found: Can't resolve '@mongodb-js/zstd-linux-arm-gnueabihf' in '/vercel/path0/node_modules/@mongodb-js/zstd'
Import trace for requested module:
./node_modules/@mongodb-js/zstd/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/mongodb/lib/utils.js
Critical dependency: the request of a dependency is an expression
Import trace for requested module:
./node_modules/mongodb/lib/utils.js
./node_modules/mongodb/lib/change_stream.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.android-arm64.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-android-arm64' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.android-arm-eabi.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-android-arm-eabi' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.win32-x64-msvc.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-win32-x64-msvc' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.win32-ia32-msvc.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-win32-ia32-msvc' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.win32-arm64-msvc.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-win32-arm64-msvc' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.darwin-x64.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-darwin-x64' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.darwin-arm64.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-darwin-arm64' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.freebsd-x64.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-freebsd-x64' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.linux-x64-musl.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.linux-x64-gnu.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.linux-arm64-musl.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-linux-arm64-musl' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.linux-arm64-gnu.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-linux-arm64-gnu' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve './snappy.linux-arm-gnueabihf.node' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js
./node_modules/snappy/index.js
Module not found: Can't resolve '@napi-rs/snappy-linux-arm-gnueabihf' in '/vercel/path0/node_modules/snappy'
Import trace for requested module:
./node_modules/snappy/index.js
./node_modules/mongodb/lib/deps.js
./node_modules/mongodb/lib/index.js
./src/lib/mongo/index.js
./src/lib/api.js

解决方法

1. 配置Next.js跳过原生依赖打包

在next.config.js中添加webpack外部依赖配置,让Next.js在构建时不打包MongoDB相关的原生模块:

/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: (config) => {
    // 将原生依赖标记为外部模块,避免客户端构建时尝试打包
    config.externals.push('mongodb', '@mongodb-js/zstd', 'snappy');
    return config;
  },
};

module.exports = nextConfig;

2. 确保MongoDB代码仅在服务器端执行

检查你的代码,确保MongoDB客户端的导入和连接逻辑只在API路由、Server Components、getServerSideProps、getStaticProps中执行,不要在客户端组件里直接引入这些模块,避免客户端构建时包含不必要的依赖。

3. 降级MongoDB驱动版本

MongoDB v5+版本引入了新的压缩依赖,可能存在兼容性问题,降级到v4.x版本可以规避:

yarn add mongodb@4.17.0

4. 重新构建原生依赖

如果是在Vercel等平台部署,添加postinstall脚本确保原生依赖在构建环境中正确编译:

{
  "scripts": {
    "postinstall": "npx npm rebuild @mongodb-js/zstd snappy"
  }
}

内容的提问来源于stack exchange,提问作者

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 23:18:42