与 webpack 捆绑后,NodeJS 加密模块无法在浏览器中工作

NodeJS crypto module not working in browser after bundling with webpack

当我在浏览器中查看我的代码时,我不断收到以下错误:

Uncaught TypeError: crypto.createHash is not a function

我试过在运行时使用 webpack 加载模块:

module.exports = {
  target: "web",
  mode: "production",
  entry: "./dist/index.js",
  output: { filename: "../dist/bundle.js" },
  externals: { crypto: require("crypto") }, <=== here
};

并导入为:import * as crypto from "crypto",但这会导致上述相同的错误。

我意识到浏览器有自己的原生 crypto API,因此也尝试将名称别名为 import * as crypt from "crypto" 等不同的名称,但这会导致相同的错误。

包含完整代码的存储库可用:https://www.github.com/lbragile/LibraCoin

Node.js 核心库 在 node.js 环境中可用。所以,如果最后,您将 运行 您的代码在浏览器中,您 不能 使用节点核心库。

请注意,crypto 是一个核心库

据我所知,浏览器加密 API 完全不同。所以看看它的 docs