繁体   English   中英

尝试包含加密模块时出错:无法解析“加密”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM