[英]Error when attempting to include Crypto module: Can't resolve 'crypto'
我正在 React JS 中进行注册用户设置,安装加密库以保护密码,但是当我运行程序时,它给了我一个错误:
/node_modules/jwa/index.js 5:13-30 中的错误
未找到模块:错误:无法解析“E:\Node Tutorial\registerSetup\client\node_modules\jwa”中的“crypto”
重大更改:webpack < 5 用于默认包含 node.js 核心模块的 polyfill。 这已不再是这种情况。 验证你是否需要这个模块并为它配置一个 polyfill。
如果你想包含一个 polyfill,你需要:
- 添加一个后备 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
- install 'crypto-browserify' 如果你不想包含 polyfill,你可以像这样使用一个空模块:resolve.fallback: { "crypto": false }
这是我的 package.json 文件:
{
"name": "registerSetup",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "NODE_ENV= production node server",
"dev": "nodemon server"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.1",
"cors": "^2.8.5",
"crypto": "^1.0.1",
"crypto-browserify": "^3.12.0",
"dotenv": "^15.0.0",
"express": "^4.17.2",
"express-jwt": "^6.1.0",
"express-validator": "^6.14.0",
"google-auth-library": "^7.11.0",
"jsonwebtoken": "^8.5.1",
"loadash": "^1.0.0",
"lodash": "^4.17.21",
"mongoose": "^6.1.8",
"morgan": "^1.10.0",
"node-fetch": "^3.2.0",
"nodemailer": "^6.7.2",
"nodemon": "^2.0.15"
}
}
我在 registerSetup 中的 react 文件夹的 package.json --> https://pastebin.com/hqBs7J4s
Crypto 是一个内置的 Node 模块,您无需安装它。 卸载“crypto”:“^1.0.1”,然后尝试:
const crypto = require("crypto")
你可以尝试将 react 版本降级到: 4.0.3
我认为您应该 go 到您的 node_modules/react-scripts/config/webpack.config.json 并在解析块中写入以下代码
fallback: {
"crypto": require.resolve("crypto-browserify")
}
注意:应该安装crypto-browserify
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.