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 环境中使用。
解决方法
-
避免在 uni-app 中使用 Node.js 模块: uni-app 运行在浏览器或小程序环境中,无法直接使用 Node.js 的核心模块(如
fs
、path
等)。如果你需要在 uni-app 中处理文件,可以使用浏览器提供的 API 或 uni-app 提供的 API。 -
使用 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); } });
-
使用第三方库: 如果你需要在 uni-app 中处理文件,可以使用一些浏览器兼容的第三方库,例如
axios
用于网络请求,jszip
用于处理压缩文件等。 -
区分开发环境: 如果你在开发过程中需要区分 Node.js 环境和浏览器环境,可以使用条件判断来避免在浏览器环境中使用 Node.js 模块:
if (typeof window !== 'undefined') { // 浏览器环境 } else { // Node.js 环境 }