首页 > 解决方案 > 未找到模块:无法在 Next.js 应用程序中解析“fs”

问题描述

无法识别我的 next.js 应用程序中发生了什么。因为fs是 nodejs 的默认文件系统模块。它给出了module not found的错误。

在此处输入图像描述

在此处输入图像描述

标签: node.jsreactjsnext.jsserver-side-renderingfs

解决方案


如果您使用fs,请确保它仅在getInitialPropsor内serverSideProps。(包括服务器端渲染)。

您可能还需要创建一个next.config.js包含以下内容的文件来构建客户端包:

为了webpack4

module.exports = {
  webpack: (config, { isServer }) => {
    // Fixes npm packages that depend on `fs` module
    if (!isServer) {
      config.node = {
        fs: 'empty'
      }
    }

    return config
  }
}

为了webpack5

module.exports = {
  webpack5: true,
  webpack: (config) => {
    config.resolve.fallback = { fs: false };

    return config;
  },
};

注意:对于其他模块,例如path,您可以添加多个参数,例如

{
  fs: false,
  path: false
}

推荐阅读