React-Native无法解析模块

时间:2015-12-17 03:04:18

标签: node.js socket.io react-native

我收到以下错误:

  

Dec 16 20:03:26 NathanHyland Bunny [21876]:无法从/Users/nhyland/Documents/react-native/Bunny/index.ios.js解析模块socket.io-client / socket.io:无效目录/Users/node_modules/socket.io-client/socket.io   12月16日20:03:26 NathanHyland syslogd [21710]:ASL发件人统计

我的index.io.js:

var React = require('react-native');
var {
    AppRegistry,
    StyleSheet,
    Text,
    View,
    TouchableHighlight
    } = React;

import './UserAgent';
window.navigator.userAgent = "react-native";
var _ = require('lodash');
var io = require('socket.io-client/socket.io');

class Bunny extends React.Component {
    constructor(props) {
        super(props);
    }

    render() {
        return (
            <View style={styles.container}>
                <Text style={styles.welcome}>
                    Welcome to React Native!
                </Text>
                <Text style={styles.instructions}>
                    To get started, edit index.ios.js
                </Text>
                <Text style={styles.instructions}>
                    Press Cmd+R to reload,{'\n'}
                    Cmd+D or shake for dev menu
                </Text>
                <TouchableHighlight onPress={() => {

      }}><Text>Test</Text></TouchableHighlight>
            </View>
        );
    }
}


var styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#F5FCFF',
    },
    welcome: {
        fontSize: 20,
        textAlign: 'center',
        margin: 10,
    },
    instructions: {
        textAlign: 'center',
        color: '#333333',
        marginBottom: 5,
    },
});

AppRegistry.registerComponent('Bunny', () => Bunny);

我试图直接链接到node_modules中的文件夹/文件,这不起作用,我尝试了不同的导入方式,没有bueno。

它通过npm install socket.io-client安装得很好,我可以在node-modules中看到它。

知道为什么它不会让我导入?

3 个答案:

答案 0 :(得分:2)

对于将来处理此问题的人,请尝试在您的require路径中包含“dist”文件夹,如下所示:

var io = require('socket.io-client/dist/socket.io');

请参阅讨论此here的github问题。

答案 1 :(得分:1)

import io from 'socket.io-client';

===============

package.json文件

"dependencies": {
    "react": "16.0.0-alpha.12",
    "react-native": "0.47.1",
    "socket.io-client": "2.0.3"
}

答案 2 :(得分:-1)

var React = require('react-native');

var {
    AppRegistry,
    StyleSheet,
    Text,
    View,
    TouchableHighlight
    } = React;

=============================================

import React, {Component} from 'react';

import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  TouchableHighlight
} from 'react-native';