【问题标题】:Node.js fs workaroundNode.js fs 解决方法
【发布时间】:2018-10-11 01:27:47
【问题描述】:

我正在使用 node 和 webpack 来运行我在 react 上设计的 UI。我使用的一些包需要 fs - 像 fs.readFileSync(__dirname + '/file.txt'); 这样的函数会返回缺失类型错误。

我了解到 fs 试图访问由于隐私问题而无法在浏览器上运行的文件系统。这是可以理解的。

什么是最好的明确替代方案,即。当我下载一个包(例如npm install pdf-kit --s)并且由于使用 fs 而无法工作时,我该怎么做才能使其工作?

谢谢

更新:

我尝试添加"target": "node"

node: {
  fs: 'empty',
}

到 webpack 配置,都无济于事。我得到的具体错误是

TypeError: fs.readFileSync is not a function

非常渴望特定的解决方法 - 不知道如何使用这些具有 fs 的软件包...

【问题讨论】:

  • 你在什么环境下运行它需要读取文件?如果它在网络上,请发送网络请求。
  • @SlavaKnyazev 我正在使用“npm start”在我的 ubuntu 机器上运行节点 localhost 服务器
  • @FelixKling 谢谢 felix - 刚刚尝试过,不幸的是没有运气
  • 如果一个包绝对需要fs,那么另一种选择是找到一个不需要fs的替代包

标签: javascript node.js webpack fs


【解决方案1】:

这个问题好像已经在 cmets 中回答了,所以我在这里总结一下:

'fs' 或文件系统是节点的一部分。如果一个包需要'fs',它可能意味着与节点一起使用,而不是客户端或浏览器环境。

有问题的包恰好有使用 blob 的浏览器支持。 http://pdfkit.org/docs/getting_started.html#using_pdfkit_in_the_browser

感谢 Jaromanda X 和 Milos Mosovsky

【讨论】:

    猜你喜欢
    • 2023-02-19
    • 2021-08-31
    • 1970-01-01
    • 2017-04-22
    • 2014-11-21
    • 2021-01-25
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多