VSCode中导入FS报net::ERR_ABORTED 404错误的原因排查
问题分析与解决
首先得纠正一个核心误区:你导入的@types/node/fs.js是TypeScript的类型定义文件,不是能在浏览器(或普通JS运行环境)执行的实际代码,而且fs是Node.js的内置模块,浏览器环境本身就不支持这个API。
为什么会出现这些现象?
- VSCode能跳转但编译器/浏览器找不到:VSCode是基于TypeScript语言服务识别类型文件的,所以能定位到
@types里的声明,但前端打包工具(比如Vite、Webpack)或者浏览器的模块解析逻辑,默认不会把node_modules/@types当作可执行JS模块的来源,自然会返回404。 - 自动补全不显示@types:前端工具的模块补全逻辑优先搜索可执行的JS/TS模块,
@types目录是专门存放类型声明的,不在默认的模块搜索范围内,所以不会自动提示。
正确的做法
- 如果是Node.js环境写代码:直接导入内置模块即可,不用写相对路径到node_modules:
Node.js会自动识别内置模块,import { readdirSync } from 'fs';@types/node只是给TypeScript提供类型提示用的,不需要手动导入类型文件。 - 如果是浏览器环境:
fs模块完全不可用,浏览器没有文件系统访问权限(除了通过<input type="file">这类用户交互API),别再尝试导入Node.js的fs模块了。
内容的提问来源于stack exchange,提问作者user22407520
相关产品推荐
相关产品推荐

