React-Native Unable to resolve module

2019-05-07 06:42发布

I'm getting the following error:

Dec 16 20:03:26 NathanHyland Bunny[21876]: Unable to resolve module socket.io-client/socket.io from /Users/nhyland/Documents/react-native/Bunny/index.ios.js: Invalid directory /Users/node_modules/socket.io-client/socket.io Dec 16 20:03:26 NathanHyland syslogd[21710]: ASL Sender Statistics

My 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);

I've tried to link directly to the folder/file in node_modules and that doesn't work, I've tried different ways of importing and no bueno.

It installs just fine via npm install socket.io-client, I can see it in node-modules.

Any idea why it won't let me import?

3条回答
Emotional °昔
2楼-- · 2019-05-07 07:20
import io from 'socket.io-client';

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

package.json file

"dependencies": {
    "react": "16.0.0-alpha.12",
    "react-native": "0.47.1",
    "socket.io-client": "2.0.3"
}
查看更多
兄弟一词,经得起流年.
3楼-- · 2019-05-07 07:38

For people who land on this issue in future try include the "dist" folder in your require path like this:

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

See the github issue discussing this here.

查看更多
手持菜刀,她持情操
4楼-- · 2019-05-07 07:40
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';
查看更多
登录 后发表回答