React + Node + bcrypt的问题(模块未找到:无法解析\node_modules\@mapbox\node-pre-gyp\lib中的“fs”

qmb5sa22  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(226)

我是React和Node的新手,所以如果我问错了什么,我很抱歉。事情是这样的,我有一个项目,我刚刚完成,一切正常,但我有用户注册和登录,我需要实现bcrypt,以便能够散列我的密码,而不是将它们存储为纯文本显然。
在我用npm i bcrypt安装bcrypt并用const bcrypt = require('bcrypt')添加它之后,我在编译时得到了大量的错误(116个错误!),但至少他们大多是相同的错误,但我不明白热修复它。
这里有一个截图(我没有使用webpack,至少我没有安装它,它不在我的package.json依赖项中)。

sbdsn5lh

sbdsn5lh1#

您似乎正在使用Webpack V5,并且在此版本中有一些突破性的更改。你应该在package.json中添加以下代码块:

"browser": {
    "fs": false,
    "os": false,
    "path": false
  }

如错误所示,你必须使用polyfill,但如果你不想包含它,你可以将fsospath设置为false,以使用空模块而不是为fs模块包含polyfill。
如果使用Create React App,可能需要编辑webpack.config.json文件(路径为node_modules/react-scripts/config/webpack.config.json),并在resolve.fallback属性中添加回退:

resolve: {
      // ...
      fallback: {
        //  add this 👇️
        "fs": false,
        "os": false,
        "path": false,
      }
    }

相关问题