如何替换/补充 npm/angular 中的包依赖

时间:2021-01-27 21:07:49

标签: javascript angular typescript npm package.json

我有一个 Angular 应用程序,必须使用 npm 包 @inrupt/solid-client-authn-browser。 这个包依赖于 jwacryptostreambuffer 包,所有这些包最初都是为 node.js(服务器端)创建的,不是为了在浏览器中运行。

创建者建议为浏览器替代品 (https://github.com/inrupt/solid-client-js/issues/608) 填充这些内容,他们使用 webpack 进行。

我发现可以通过将它添加到 buffer 来修复 polyfills.ts

(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;

但我还没有弄清楚如何修复 jwa 对加密的包依赖。 在包 (node_modules)/jwa/index.js 中,有

var crypto = require('crypto');

这在角度构建上失败(标准 ng build):

Error: ./node_modules/jwa/index.js
Module not found: Error: Can't resolve 'crypto' in 'C:\dev\Windows\src\k diplomce\inbox\node_modules\jwa'

crypto-browserify 包。 我需要的只是告诉 npm 使用 crypto-browserify 而不是 crypto

有没有办法做到这一点(为了保持构建,我不想直接编辑 node_modules 中生成的文件)?

我的版本:Angular CLI:11.0.7,Angular:11.0.9

0 个答案:

没有答案
相关问题