Angular 网页包5 node.js crypto js的角度多边形填充

Angular 网页包5 node.js crypto js的角度多边形填充,angular,webpack,config,Angular,Webpack,Config,我有一个关于Webpack5配置的基本问题,因为我对它没有任何经验。我想创建最简单的Angular应用程序,它使用node.js模块crypto js和SHA256 在Webpack5之前,它非常简单。你不必担心webpack,它就在后面的某个地方 在命令提示符中,我执行了以下操作: ng NewTestApp->cd TestApp->npm安装crypto js->npm安装--save@types/crypto js->使用导入的SHA256编写简单测试代码->构建并->成功 现在我得到消

我有一个关于Webpack5配置的基本问题,因为我对它没有任何经验。我想创建最简单的Angular应用程序,它使用node.js模块crypto js和SHA256

在Webpack5之前,它非常简单。你不必担心webpack,它就在后面的某个地方

在命令提示符中,我执行了以下操作: ng NewTestApp->cd TestApp->npm安装crypto js->npm安装--save@types/crypto js->使用导入的SHA256编写简单测试代码->构建并->成功

现在我得到消息:

突破性更改:默认情况下,webpack<5用于包含node.js核心模块的polyfills。情况不再如此。验证是否需要此模块并为其配置polyfill

如果要包含多边形填充,需要: -添加回退“resolve.fallback:{“crypto”:require.resolve(“crypto browserify”)}” -安装“crypto browserify”如果不想包含polyfill,可以使用空>模块,如下所示: resolve.fallback:{“crypto”:false}

我必须安装这个模块,并在配置文件中包含这个polyfill。 问题是如何编写最简单的webpack.config.js,将其放在何处,以及除了这些行之外还包括哪些内容


BR

遗憾的是,AngularCli隐藏了Web包配置,仅允许您访问AngularCli公开的某些选项

但是,您可以使用运行良好的软件包。它易于使用,您可以在不破坏Angular提供的所有配置的情况下替换一些网页选项

因此,在您的例子中,您可以添加一个作为“crypto”的后备方案。在这种情况下,您的网页额外配置文件如下所示:

{决议:{ 回退:{ 加密:“./节点\模块/加密浏览” } }
}

升级到Angular 12后,我遇到了这个问题,因此在搜索之后,我完成了以下操作:

tsconfig.json中,我添加了:

{
“编译器选项”:{
“路径”:{
“加密”:[“节点模块/crypto js”]
}
}
}
angular.json中,我添加了:

{
“建筑师”:{
“构建”:{
“选择”:{
“allowedCommonJsDependencies”:[“crypto”],
}
}
}
}
警告也不见了。
我希望这将帮助您解决问题。

我也遇到了同样的问题,这是我在git hub上找到的有效解决方案。

在项目目录中运行:

npm install crypto-browserify stream-browserify assert stream-http https-browserify os-browserify
tsconfig.json 在“编译器选项”中添加此选项:{[…]}

"paths" : {
      "crypto": ["./node_modules/crypto-browserify"],
      "stream": ["./node_modules/stream-browserify"],
      "assert": ["./node_modules/assert"],
      "http": ["./node_modules/stream-http"],
      "https": ["./node_modules/https-browserify"],
      "os": ["./node_modules/os-browserify"],
    }


你真是个笨蛋!非常感谢。在
allowedCommonJsDependencies
中,我不得不将其称为
crypto js
,因为这是我加载的节点模块。