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

Angular使用readdir读取文件报fs_1.statSync is not a function如何解决

你的实现思路本身不符合前端浏览器的运行规则,是错误的。
fs是Node.js专属的服务端文件系统模块,只能在Node.js运行环境下调用。浏览器受安全沙箱限制,不允许前端代码直接读取本地磁盘的任意目录内容,也根本没有提供对应的fs相关API。
你之前在package.json里加的"fs": false配置,只是让webpack打包时跳过了fs模块不存在的校验,并没有真正解决运行时缺少fs模块的问题,所以后续调用statSync方法时自然会报不存在的错误。你安装的readdir包同样是服务端Node.js生态的工具,完全无法在前端浏览器环境运行。

正确的实现方案如下:
你已经有运行在http://localhost:54111/的后端服务,完全可以把读取文件列表的逻辑放到后端实现:

  • 先删除package.json中新增的browser配置,卸载readdir依赖,同时去掉前端代码里所有readdir相关的导入和调用逻辑
  • 在后端服务新增一个接口,逻辑为读取你指定的Reports目录下所有后缀为.repx的报表文件,把文件名列表组装成数组返回
  • 前端在ngOnInit生命周期中,发送HTTP请求调用该后端接口,拿到返回的报表名称列表后,赋值给下拉框绑定的data变量即可完成下拉框加载需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:06:00