更新到 Angular 19 后,错误:“[插件 angular-browser-node-built-in] 在文件系统上找不到包‘crypto’”

问题描述 投票:0回答:1

我最近将 Angular 项目更新到版本 19,现在在构建或提供应用程序时遇到以下错误:

[ERROR] The package "crypto" wasn't found on the file system but is built into node. [plugin angular-browser-node-built-in]

node_modules/crypto-js/core.js:50:25:
  50 │         crypto = require('crypto');
      ╵                          ~~~~~~~~

我使用 crypto-js 库和 secure-web-storage 来处理浏览器中的加密本地存储。 以下是我在 StorageService 中导入和使用这些库的方法:

import sha256 from 'crypto-js/sha256';
import aes from 'crypto-js/aes';
import Utf8 from 'crypto-js/enc-utf8';

我添加了以下配置来尝试解决该问题:

1- angular.json:
"allowedCommonJsDependencies": [
  "secure-web-storage",
  "crypto-js",
  "crypto"
]

2- tsconfig.json:

"paths": {
  "crypto": ["./node_modules/crypto-js"]
}
node.js angular cryptojs
1个回答
0
投票

我认为您收到错误是由于

crypto
添加到
paths
tsconfig.json

删除此:

"paths": {
  "crypto": ["./node_modules/crypto-js"]
}

默认情况下,Angular 将检查

crypto-js
包。

完成此更改后还要重新启动服务器。

© www.soinside.com 2019 - 2024. All rights reserved.