uni-app Hbuilder版本是3.4.4 出现error 未找到公共模块[fs]

uni-app Hbuilder版本是3.4.4 出现error 未找到公共模块[fs]

操作步骤:

uni-admin跑起来后,会抛error: 未找到公共模块[fs] Hbuilder版本是3.4.4

预期结果:

uni-admin跑起来后,会抛error: 未找到公共模块[fs] Hbuilder版本是3.4.4

实际结果:

uni-admin跑起来后,会抛error: 未找到公共模块[fs] Hbuilder版本是3.4.4

图像

相关链接


更多关于uni-app Hbuilder版本是3.4.4 出现error 未找到公共模块[fs]的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

此问题内部已修复,3.4.5-alpha发版后请更新。

更多关于uni-app Hbuilder版本是3.4.4 出现error 未找到公共模块[fs]的实战教程也可以访问 https://www.itying.com/category-93-b0.html


HX 3.4.5+ 版本已修复,请升级

好的,谢谢

在 uni-app 开发中,如果你使用的是 HBuilderX 3.4.4 版本,并且遇到了 未找到公共模块[fs] 的错误,这通常是因为你在代码中使用了 Node.js 的核心模块 fs,而 uni-app 的运行环境并不支持直接使用 Node.js 的模块。

原因分析

uni-app 是基于 Vue.js 的跨平台开发框架,它主要运行在浏览器、小程序、App 等环境中,这些环境并不支持 Node.js 的核心模块(如 fspath 等)。因此,如果你在 uni-app 项目中直接使用了 fs 模块,就会导致这个错误。

解决方案

  1. 避免使用 Node.js 模块

    • 如果你需要在 uni-app 中操作文件系统,可以使用 uni-app 提供的 API,例如 uni.chooseFileuni.saveFile 等。
    • 如果你需要在服务器端操作文件系统,可以将相关逻辑放在服务器端,通过 API 调用来实现。
  2. 使用条件编译

    • 如果你需要在不同的环境中使用不同的代码,可以使用 uni-app 的条件编译功能。例如,你可以在 H5 环境中使用浏览器的 FileReader API,而在 Node.js 环境中使用 fs 模块。
    // #ifdef H5
    // 使用浏览器的 FileReader API
    const fileReader = new FileReader();
    fileReader.onload = function(event) {
        console.log(event.target.result);
    };
    fileReader.readAsText(file);
    // #endif
    
    // #ifdef NODE
    // 使用 Node.js 的 fs 模块
    const fs = require('fs');
    fs.readFile('path/to/file', 'utf8', (err, data) => {
        if (err) throw err;
        console.log(data);
    });
    // #endif
回到顶部