Используйте stream-browserify с выставкой - PullRequest
0 голосов
/ 04 февраля 2019

stream нельзя использовать с expo, так как это стандартный пакет Node.js.Тем не менее, пакет stream-browserify может использоваться в качестве альтернативы в этих сценариях.

Чтобы модули могли решить эту проблему вместо собственного пакета Node, я пытаюсь заставить babel-plugin-require-rewrite работать с expo.

Я добавляю это к babel.config.js:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: [
      ["rewrite-require", { aliases: {
        "stream": "stream-browserify"
      }}]
    ]
  };
};

К сожалению, это не соблюдается компоновщиком.Я получаю эту ошибку при попытке:

The package at "node_modules\qr-image\lib\qr.js" attempted to import the Node standard library module "stream". It failed because React Native does not include the Node standard library. Read more at https://docs.expo.io/versions/latest/introduction/faq.html#can-i-use-nodejs-packages-with-expo

Можно ли сделать эту работу в Экспо?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Этот ответ rn-nodeify install , который я разместил, должен работать.За исключением Шаг 1 & Шаг 5 Выполните все шаги. Шаг 3 используется для добавления пакетов узлов, которые вы специально хотите установить, в этом случае укажите stream.Пожалуйста, внесите изменения в Шаг 4 в соответствии с вашими требованиями в Шаг 3 .

Пожалуйста, прокомментируйте, если хотите, чтобы я уточнил.

0 голосов
/ 08 февраля 2019

Вам не нужно изменять конфигурацию babel для использования stream-browserify в вашем источнике.Вы можете импортировать stream-browserify в свой App.js.Я создал простой пример для GitHub .

App.js

const Stream = require('stream-browserify');

Package.json

  "dependencies": {
    "buffer": "^5.2.1",
    "events": "^3.0.0",
    "stream-browserify": "^2.0.2",
    "readable-stream": {
      "version": "2.3.6",
      "dependencies": {
        "core-util-is": "github:mjmasn/core-util-is"
      }
    }
    ...
  }

stream-browserify имеет зависимость readable-stream, которая имеет свою собственную зависимость и использует узел среды.Чтобы решить эту проблему, вы должны добавить эти пакеты узлов.Вы можете прочитать о core-util-is fork здесь .

...