javascript - 未捕获的类型错误 : Failed to resolve module s

当我尝试在我自己的模块中导入 fs 模块时,如 import * as fs from 'fs' 浏览器控制台出现以下错误:
未捕获的类型错误:无法解析模块说明符“fs”。相对引用必须以“/”、“./”或“../”开头

使用 require 或使用模块的相对路径如 ./node_modules/fs 将不起作用,是否有任何其他方法可以正确导入 fs 模块?

最佳答案

您有两个基本问题,这两个问题都源于您是在浏览器中而不是在 Node.js 中运行此代码。


传递类似于 'fs' 的内容至 import取决于 Node.js 样式模块解析。 Node.js 将搜索 node_modules 的内容匹配模块的文件夹。浏览器不能那样做,它们没有文件系统来搜索;他们只处理 URL。

在浏览器中处理模块时,您必须传递:

  • 包含绝对路径的 URL(如 /fshttp://example.com/fs )
  • 作为显式相对路径的 URL(如 ../fs./fs )。

...就像错误信息所说的那样。

(通常您还需要在 URL 的末尾放置一个 .js,因为您的 HTTP 服务器不太可能为您这样做)。


您还需要首先使用一个将在浏览器中运行的模块。

fs是一个 Node.js 内置模块。它执行浏览器不允许允许 JavaScript 执行的操作(例如访问文件系统)。

如果你想使用 fs模块,那么您不能直接从浏览器使用它。相反,在 Node.js 中编写 Web 服务(Express.js 模块在这里很有用)并使用 Ajax(例如 fetch API)从浏览器访问它。这将处理服务器的文件系统,而不是浏览器的。

如果您想访问用户计算机上的文件,则需要使用 <input type="file">FileReader API。

关于javascript - 未捕获的类型错误 : Failed to resolve module specifier "fs". 相对引用必须以 "/"、 "./"或 "../"开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72458428/

相关文章:

python - 如何授予应用程序(而非用户本身)对文件夹和文件的权限

python - SQLAlchemy 不插入默认值

sql - 从现有表创建 BigQuery 表,包括 _PARTITIONTIME

flutter - 如何更新 flutterfire_web_sdk_version 以及如何启用

api - 为什么 Instagram 公共(public) API 未使用身份验证

wordpress - 如何使用 WordPress Multisite 重定向特定站点的主页

unity3d - Unity Microgame WebGL 上传不工作(500 内部服务器)

python - pydantic.error_wrappers.ValidationError :

python - 异步 Pool.execute 与 Connection.execute

python - 根据另一个 df 中的列计算一个 df 中的行数