mscorlib: Ошибка: не удается найти модуль "crypto" после использования Webpack в приложении

У меня есть проект, который использует библиотеку openpgpjs в качестве зависимости, и я собираю все это приложение для развертывания в функциях Azure для решения проблем холодного запуска.

Функции Azure работают нормально при локальном запуске в формате, отличном от Webpacked, но как только я упаковываю файлы в Web, я получаю сообщение об ошибке во время выполнения:

"mscorlib: Ошибка: не удается найти модуль" crypto ""

Код, который вызывает эту ошибку, кажется, из утилиты Openpgpjs util.js.

Весь этот файл находится здесь: https://github.com/openpgpjs/openpgpjs/blob/master/src/util.js

Ниже приведен фрагмент кода:

/**
   * Get native Node.js crypto api. The default configuration is to use
   * the api when available. But it can also be deactivated with config.use_native
   * @return {Object}   The crypto module or 'undefined'
   */
  getNodeCrypto: function() {
    if (!this.detectNode() || !config.use_native) {
      return;
    }

    return require('crypto');
  },

Что касается жизни, я не могу понять, почему это происходит, и я не могу заставить ошибку исчезнуть.

Я использую свой собственный пакет-git для создания веб-пакетов и т. Д. Однако я получаю то же поведение, если использую пакет функций Azure. (Которого не было, когда я начал писать код для мастер-пакета.

В результате я думаю, что это как-то связано с тем, как библиотека играет с WebPack, но я не уверен, с чего начать, чтобы выяснить это / устранить неполадки.

У кого-нибудь есть идеи о том, что идет не так, или, по крайней мере, идеи, которые помогут мне еще больше изолировать проблему?

------------------- РЕДАКТИРОВАТЬ ---------------------

Я создал простой проект, который воспроизводит проблему при запуске через Funcpack, который использует Webpack.

Шаги воспроизведения:

  1. Установите funcpack и azure-functions-cli глобально:

    npm install -g funcpack azure-functions-cli

  2. Клонировать следующий репо:

    git clone https://github.com/securityvoid/funcpack-bug.git

  3. Запустите установку npm, находясь в клонированной папке:

    установка npm

  4. Запустите функцию Azure с помощью azure-functions-cli из базы клонированного репозитория.

    func run aaaa

  5. Перейдите по следующему URL-адресу и подтвердите, что вы получите пустую страницу, которая показывает его работу:

    HTTP: // локальный: 7071 / Test

  6. Остановите azure-functions-cli, закрыв окно.

  7. Запустите funcpack в базе каталога:

    funcpack

  8. Повторите шаги 4-5

ПРИМЕЧАНИЕ. На этот раз вы получите сообщение об отсутствии криптографии модуля.

0 ответов

Другие вопросы по тегам