2016-01-05 48 views
1

我做了npm install socket.io-client。 我然後將它導入如下圖所示需要未知模塊「socket.io-client/socket.io」

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

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

但是當我運行我的應用程序,我得到以下錯誤:

Requiring uknown module "socket.io-client/socket.io". If you are sure this module is there, try restarting the packager.

我試着重新安裝和更新NPM。

我重新啓動了包裝器1000次。

任何想法爲什麼會發生這種情況?

回答

0

該模塊是socket.io-client如此,

import io from 'socket.io-client' 
+0

是的,我也試過。 'socket.io-client'和'socket.io'都會拋出同樣的錯誤... –

0

給大家停留在這一點,我設法通過在我的項目中socket.io.js獨立的文件,並從那裏導入的方式解決它。

由於某些原因,RN包裝程序未在node_modules中構建依賴關係。

0

我想你會發現你將會通過導入以這種方式導入SocketIO。

您可以嘗試切換到require語法,並確保事先包含必需的userAgent行。

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

我有一個項目,你可以比較相同的東西,React Native Messenger

0

我使用相同的代碼,沒有問題。也許你需要升級你的反應原生?截至撰寫本文時爲止,我處於最新狀態:0.18.0-rc。

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

試過我所能想到的一切,這是唯一對我有用的東西。

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

+0

我正在評論StackOverflow(SO)評論者,因爲您是新用戶。這看起來像有用的信息,但您可以通過幾種方式改進您的答案。 (1)您的答案將存在多年,而github上的鏈接可能會消失。出於這個原因,告訴讀者主要的事情是很重要的,如果鏈接消失了,鏈接就會說出來。 (2)應該在哪裏添加** dist **目錄? –

+0

謝謝蘇漢。由於這個問題,我被困了幾天。更改導入語句解決了我的問題 – Payal

-1

確認插座io的客戶端安裝在node_modules依賴性,如果不嘗試重新安裝的依賴。如果有,那麼你可以更新聲明

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

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

現在應該工作。