uni-app Error: 未找到公共模块[fs]

uni-app Error: 未找到公共模块[fs]

操作步骤:

  • clientDB请求

预期结果:

  • 正常返回查询结果

实际结果:

  • Error: 未找到公共模块[fs]

bug描述:

  • clientDB不能用了,一直报Error: 未找到公共模块[fs],HbuilderX 3.4.3没问题,3.4.4报bug
3 回复

试试 HBuilderX3.3.13版本是否正常


HX 3.4.5+ 版本已修复此问题

在 uni-app 开发过程中,如果你遇到 未找到公共模块[fs] 的错误,通常是因为你在代码中尝试使用了 Node.js 的核心模块 fs,而 fs 模块在浏览器环境中是不可用的。uni-app 是一个跨平台框架,主要用于开发小程序、H5 和 APP,而 fs 模块是 Node.js 的文件系统模块,只能在 Node.js 环境中使用。

解决方法

  1. 避免在 uni-app 中使用 Node.js 模块: uni-app 运行在浏览器或小程序环境中,无法直接使用 Node.js 的核心模块(如 fspath 等)。如果你需要在 uni-app 中处理文件,可以使用浏览器提供的 API 或 uni-app 提供的 API。

  2. 使用 uni-app 的文件操作 API: uni-app 提供了一些文件操作的 API,可以用于处理文件。例如:

    • uni.chooseFile:选择文件
    • uni.uploadFile:上传文件
    • uni.downloadFile:下载文件
    • uni.saveFile:保存文件

    例如,如果你需要读取文件内容,可以使用 uni.chooseFile 选择文件,然后使用 FileReader 读取文件内容:

    uni.chooseFile({
      success: (res) => {
        const file = res.tempFiles[0];
        const reader = new FileReader();
        reader.onload = (e) => {
          console.log(e.target.result); // 文件内容
        };
        reader.readAsText(file);
      }
    });
  3. 使用第三方库: 如果你需要在 uni-app 中处理文件,可以使用一些浏览器兼容的第三方库,例如 axios 用于网络请求,jszip 用于处理压缩文件等。

  4. 区分开发环境: 如果你在开发过程中需要区分 Node.js 环境和浏览器环境,可以使用条件判断来避免在浏览器环境中使用 Node.js 模块:

    if (typeof window !== 'undefined') {
      // 浏览器环境
    } else {
      // Node.js 环境
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!