#node.js #reactjs #expo #xbee #node-serialport
#node.js #реагирует на #Экспо #xbee #узел-сериальный порт
Вопрос:
Я пытаюсь создать приложение для телефона с помощью React и Nodejs, которое использует устройство xbee для связи. Для подключения к устройству xbee я использую модуль serialport, полученный от npm. Всякий раз, когда я пытаюсь запустить свое приложение на expo, я получаю следующую ошибку:
Unable to resolve module child_process from C:UsersalessDesktop...node_modules@serialportbindingsliblinux-list.js: child_process could not be found within the project.
Я попытался решить проблему с помощью rn-nodeify, но это, похоже, не решает проблему. У меня есть shim.js импортированный в мой App.js и я использую следующую команду postinstall в своем пакете.json:
"postinstall": "rn-nodeify --install fs,util,path,tls,stream,buffer,global,process,assert,events,child_process --hack"
И вот мой пакет.json в общей сложности:
{ "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "eject": "expo eject", "postinstall": "rn-nodeify --install fs,util,path,tls,stream,buffer,global,process,assert,events,child_process --hack" }, "dependencies": { "@expo/ngrok": "^2.4.3", "@react-native-community/masked-view": "0.1.10", "@react-navigation/native": "^5.7.6", "@react-navigation/stack": "^5.9.3", "assert": "^1.1.1", "asyncstorage-down": "^4.2.0", "buffer": "^4.9.1", "events": "^1.0.0", "expo": "^39.0.5", "expo-font": "~8.3.0", "expo-status-bar": "~1.0.2", "mmap-io": "^1.1.7", "path-browserify": "^0.0.0", "process": "^0.11.10", "react": "16.13.1", "react-dom": "16.13.1", "react-native": "https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz", "react-native-3d-model-view": "^1.2.0", "react-native-gesture-handler": "~1.7.0", "react-native-indicators": "^0.17.0", "react-native-level-fs": "^3.0.1", "react-native-open-maps": "^0.3.5", "react-native-reanimated": "~1.13.0", "react-native-safe-area-context": "3.1.4", "react-native-screens": "~2.10.1", "react-native-vertical-view-pager": "^0.1.1", "react-native-viewpager": "^0.2.13", "react-native-web": "~0.13.12", "readable-stream": "^1.0.33", "serialport": "^9.2.4", "stream-browserify": "^1.0.0", "util": "^0.10.4", "xbee-api": "^0.6.0" }, "devDependencies": { "@babel/core": "~7.9.0", "rn-nodeify": "^10.2.0" }, "private": true, "react-native": { "path": "path-browserify", "fs": "react-native-level-fs", "_stream_transform": "readable-stream/transform", "_stream_readable": "readable-stream/readable", "_stream_writable": "readable-stream/writable", "_stream_duplex": "readable-stream/duplex", "_stream_passthrough": "readable-stream/passthrough", "stream": "stream-browserify", "tls": false }, "browser": { "path": "path-browserify", "fs": "react-native-level-fs", "_stream_transform": "readable-stream/transform", "_stream_readable": "readable-stream/readable", "_stream_writable": "readable-stream/writable", "_stream_duplex": "readable-stream/duplex", "_stream_passthrough": "readable-stream/passthrough", "stream": "stream-browserify", "tls": false }, "babel": { "ignore": [ "node_modules/aws-sdk/dist/aws-sdk-react-native.js" ] } }
Я попытался сделать npm install child_process
это , но затем я получаю кучу ошибок, в которых говорится, что куча файлов не существует.
Моему приложению необходимо использовать библиотеку serialport, а библиотеке serialport, по-видимому, необходимо использовать модуль child_process. Кто-нибудь знает, как исправить эту проблему и запустить приложение на expo? Я думал, что это сработает с rn-nodeify, но, похоже, это не так? Любая помощь будет признательна!