rn-nodeify: Not working with expo and stream

My dependencies include stream and a handful of other core modules in an Expo project. I’ve tried a bunch of different strategies, and then someone recommended rn-nodeify.

I have installed the postinstall script:

  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject",
    "postinstall": "rn-nodeify --install --hack"
  },

Yet, after a clean and run npm install (I can confirm it installs the shims), I get this error when I run it with npm start:

undefined is not an object (evaluating 'process.version.slice')

<unknown>
    D:\Development\project\node_modules\stream-browserify\node_modules\readable-stream\lib\_stream_writable.js:57:80
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\stream-browserify\node_modules\readable-stream\readable.js:15:28
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\stream-browserify\index.js:28:25
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\qr-image\lib\qr.js:3:22
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\uport-transports\lib\transport\ui\index.js:8:22
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\uport-transports\lib\transport\qr.js:14:17
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\uport-transports\lib\transport\index.js:8:17
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\uport-transports\lib\index.js:8:20
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\uport-connect\lib\Connect.js:7070:30
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\uport-connect\lib\index.js:34:22
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\lib\uport\index.js:1
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\pages\Introduction.js:7
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\AppNavigator.js:4
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\App.js:2
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
<unknown>
    D:\Development\project\node_modules\expo\AppEntry.js:2
loadModuleImplementation
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:292:12
guardedLoadModule
    D:\Development\project\node_modules\metro\src\lib\polyfills\require.js:179:45
global code
    <unknown file>:0

Am I doing something wrong here? Should Expo (and stream) be supported?

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (2 by maintainers)

Most upvoted comments

Is it compatible yet? I’ve had problems with Node modules not being compatible with React Native for a week now, but ejecting Expo in order to use rn nodiefy is not an option. Is there any other work around?