Angular 网页包5 node.js crypto js的角度多边形填充
我有一个关于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,将其放在何处,以及除了这些行之外还包括哪些内容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编写简单测试代码->构建并->成功 现在我得到消
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
,因为这是我加载的节点模块。