用于node.jscrypto-js的webpack5angularpolyfill
我有关于 webpack 5 配置的基本问题,因为我对它的经验为零。我想创建最简单的 Angular 应用程序,它使用node.js模块crypto-js和SHA256。
在 webpack 5 之前,它非常简单。你不必担心 webpack,它在后面的某个地方。
在命令提示符下,我做了:ng new TestApp -> cd TestApp -> npm install crypto-js -> npm install --save @types/crypto-js -> 用导入的 SHA256 编写简单的测试代码 -> 构建它 -> 它工作!
现在我收到消息:
突破性变化:webpack < 5 用于默认包含 node.js 核心模块的 polyfill。不再是这种情况。验证您是否需要此模块并为其配置 polyfill。
如果你想包含一个 polyfill,你需要: - 添加一个后备 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }' - 安装 'crypto-browserify' 如果你没有想要包含一个 polyfill,你可以使用一个空的 >module,如下所示:resolve.fallback: { "crypto": false }
我必须安装这个模块并将这个 polyfill 包含在配置文件中。问题是如何编写最简单的 webpack.config.js,除了这些行之外,放在哪里以及在其中包含什么?
BR
回答
升级到 Angular 12 后我遇到了这个问题,所以在搜索后我最终做了以下事情:
在tsconfig.json我添加了:
{
"compilerOptions": {
"paths":{
"crypto":["node_modules/crypto-js"]
}
}
}
在angular.json 中,我添加了:
{
"architect": {
"build": {
"options": {
"allowedCommonJsDependencies": ["crypto"],
}
}
}
}
警告消失了。我希望这会帮助你。