需要未知模块" socket.io-client / socket.io"

时间:2016-01-05 13:13:41

标签: socket.io react-native

我做了npm install socket.io-client。 然后我导入它,如下所示

import React from 'react-native';
import './UserAgent';

import io from 'socket.io-client/socket.io';

但是当我运行我的应用程序时,我收到以下错误:

  

需要uknown模块" socket.io-client / socket.io"。如果你确定的话   这个模块在那里,尝试重新启动打包器。

我尝试重新安装并从npm更新。

我重启包装器1000次。

有关为何发生这种情况的任何想法?

7 个答案:

答案 0 :(得分:3)

同样的问题,我找到了解决方案。

更改代码
import io from 'socket.io-client/socket.io';

import io from 'socket.io-client/dist/socket.io';

尝试添加 dist 目录。

我几天前遇到同样的问题,并在参考之下解决了这个问题。

参考: https://github.com/reactotron/reactotron/pull/280/commits/d8725351e80093edc4bcfb65d6389a9ba654ff37

答案 1 :(得分:0)

模块为socket.io-client,所以,

import io from 'socket.io-client'

答案 2 :(得分:0)

对于坚持这一点的每个人,我设法通过在我的项目中包含socket.io.js独立文件并从那里导入它来修复它。

由于某种原因,RN Packager不会在node_modules中构建依赖关系。

答案 3 :(得分:0)

我认为您会发现通过导入以这种方式导入SocketIO会遇到问题。

您可以尝试切换到require语法,并确保事先包含必需的userAgent行。

window.navigator.userAgent = 'react-native';
let io = require('socket.io-client/socket.io');

我有一个项目可以做同样的事情,你可以比较,React Native Messenger

答案 4 :(得分:0)

我正在使用与您相同的代码,没有任何问题。也许你需要升级你的本地反应?我写这篇文章的最新内容是:0.18.0-rc。

答案 5 :(得分:0)

window.navigator.userAgent = 'react-native';
let io = require('../../node_modules/socket.io-client/dist/socket.io');

尝试了我能想到的一切,这是唯一对我有用的东西。

答案 6 :(得分:-1)

验证socket io客户端是否安装在node_modules依赖项中,如果不尝试重新安装依赖项。如果它在那里,那么你可以更新声明

import io from 'socket.io-client/socket.io'

import io from 'socket.io-client/dist/socket.io.js'

现在应该可以了。