英文:
Problem with React + Node + bcrypt (Module not found: Can´t resolve "fs" in \node_modules\@mapbox\node-pre-gyp\lib
问题
我对React和Node都很新,所以如果我以错误的方式提问,我很抱歉... 问题是,我有一个刚刚完成的项目,一切都运行正常,但由于我有用户注册和登录,我需要实现bcrypt来能够对密码进行哈希处理,而不是将它们存储为明文。
在我使用npm i bcrypt
安装了bcrypt并使用const bcrypt = require('bcrypt')
添加它后,编译时出现了大量错误(116个错误!),但至少它们大多是相同的错误,但我不知道如何修复它。
这是一张截图(我不使用webpack,至少我没有安装它,它也不在我的package.json依赖项中)。
英文:
I´m new to React and Node, so I´m sorry if I ask something in a wrong way... The thing is that I have a project I just completed and everything works fine, but as I have users registration and login I need to implement bcrypt to be able to hash my passwords and not storing them as plain text obviously.
After I install bcrypt with npm i bcrypt
and add it with const bcrypt = require('bcrypt')
I get tons of errors when compiling (116 errors!) but at least they´re mostly the same error but I don´t understand hot to fix it.
Here´s a screenshot (I´m not using webpack, at least I didn´t install it and it´s not in my package.json dependencies).
答案1
得分: 1
看起来你正在使用webpack v5,并且在这个版本中有一些破坏性的变化。你应该在package.json中添加以下代码块:
"browser": {
"fs": false,
"os": false,
"path": false
}
正如错误提示所说,你需要使用polyfill,但如果你不想包含它,你可以将 fs
、os
和 path
设置为 false
,以使用一个空模块来代替包含fs模块的polyfill。
如果你使用Create React App,你可能需要编辑你的webpack.config.json文件(路径是node_modules/react-scripts/config/webpack.config.json
),并为你的resolve.fallback
属性添加一个回退:
resolve: {
// ...
fallback: {
// 添加这个
"fs": false,
"os": false,
"path": false
}
}
英文:
it seems you are using webpack v5 and there is some breaking changes in this version . you should add to package.json this block :
"browser": {
"fs": false,
"os": false,
"path": false
}
as the error says you have to use polyfill but if you don't want to include it you can set fs
, os
and path
to false
, to use an empty module instead of including a polyfill for the fs module.
If you use Create React App, you might have to edit your webpack.config.json file (the path to it is node_modules/react-scripts/config/webpack.config.json
) and add a fallback to your resolve.fallback
property :
resolve: {
// ...
fallback: {
// add this 👇️
"fs": false,
"os": false,
"path": false,
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论