Общее использование встроенных библиотек js в Angular 8 - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь использовать криптографический модуль node.js в проекте Angular, и мне кажется, что я что-то упускаю.

В обычном js файле (тоже) я могу напрямую импортировать крипто модуль, как показано ниже.

const crypto = require('crypto');

Но в Angular я не могу получить к нему доступ напрямую. У меня была такая же проблема с модулем Buffer, и я решил ее, установив "@ node / types" и внес некоторые изменения в файл tsconfig.app. json и polyfills.ts.

Я также могу найти криптомодуль в "@ types / node" и импортировать его тоже (ide находит исходные файлы). Но когда я пытаюсь использовать метод под ним, выдается «ReferenceError: процесс не определен»

Как я могу решить эту проблему и как правильно использовать встроенные js модули в Angular 8

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Нашел решение. Вот хороший пример.

stackoverflow.com / questions / 38875401

В основном я установил "@ types / node" и добавил дополнительные строки ниже в tsconfig.app. json.

"compilerOptions": {
    "types": [
      "node"
    ],
    "typeRoots": [
      "node_modules/@types"
    ]
}

Затем я добавил эти дополнительные строки ниже в pollyfills.ts

(window as any).global = window;
global.Buffer =  global.Buffer || require('buffer').Buffer;
global.process = global.process || require('process');
0 голосов
/ 02 мая 2020

установите пакет типов crypto- js (@types/crypto-js) и импортируйте модуль следующим образом

import * as crypto from "crypto";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...