找不到模块:无法解析'react-native' - React Native

时间:2018-04-05 08:20:08

标签: reactjs react-native

我刚开始学习React Native并希望在页面中添加输入字段。我已通过this tutorial添加输入字段。但每当我运行React App时,它都会抛出以下错误。

./src/Inputs.js
Module not found: Can't resolve 'react-native' in 'E:\hybrid\reactDemo\src'

我已经检查了反应原生节点模块是否存在,然后我才知道模块反应本机不存在。我安装它再次运行应用程序,但它显示相同的错误。我花了8个多小时但却无法解决此错误。我已经尝试了谷歌的所有解决方案,但没有一个适合我。

注意: 我使用的是Windows PC

更新1:我正在导入react-native,如下面的

import { View, Text, TouchableOpacity, TextInput, StyleSheet } from 'react-native'

更新2:

这是我的package.json文件

{    
  "name": "reactDemo",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.3.1",
    "react-dom": "^16.3.1",
    "react-native": "^0.54.4",
    "react-router": "^3.0.5",
    "react-scripts": "1.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

7 个答案:

答案 0 :(得分:7)

我不确定,但就我而言,它有助于通过 npm install react-native-web 安装 React Native Web。希望对你也有帮助。

答案 1 :(得分:2)

您的项目看不到react-native软件包。如果您已经安装了所有必需的依赖项(以使用react-native),请转到本文结尾。如果没有,我建议您具有以下条件:

  1. 反应脚本::包含create-react-app中使用的脚本。
  2. react-dom::允许将反应代码呈现到HTML页面中
  3. react-native-web :此应用中魔术的主要来源。该库会将我们的本机组件转换为Web元素。
  4. 反应艺术: react-native-web的对等依赖项
  5. react-router-native:用于React Native的路由库
  6. react-router-dom:网络上React的路由库

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

首先,您需要兼容的babel-jest依赖项。要修复依赖关系树,请尝试按照确切的顺序执行以下步骤:

  1. 删除package-lock.json(不是package.json!)和/或yarn.lock 您的项目文件夹。
  2. 删除项目文件夹中的node_modules。
  3. 从项目文件夹中package.json文件中的依赖项和/或devDependencies中删除“ babel-jest”。
  4. 根据所使用的软件包管理器运行npm install或yarn。

上面的配置不需要您手动配置webpack,因为react-scripts可以做到。

也许您既不使用所有内容,也不使用react-scripts,因此必须配置webpack.config.js。要解决此问题,请尝试以下操作:

const path = require('path')

module.exports = ({platform}, defaults) => ({
  ...defaults,
  entry: './index.js',
  /* ... */
  resolve: {
    ...defaults.resolve,
    alias: {
       ...defaults.resolve.alias,
      react: path.join(__dirname, 'node_modules/react'),
      'react-native': path.join(__dirname, 'node_modules/react-native'),
    }
  }
})

答案 2 :(得分:0)

你的package.json是什么样的?

它是否包含“react-native”:依赖项下的“x.x.x”?

答案 3 :(得分:0)

文件路径未正确提及。请再次检查。问题是您从外部导入src目录中的文件,并确认文件在上述路径中。

答案 4 :(得分:0)

您正在尝试在其他react项目中添加react-native。 React Native就像React,但是它使用本地组件而不是Web组件作为构建块。 因此,请在新文件夹中使用 npm install -g react-native-cli 安装react-native,然后使用 react-native init ProjectName 启动新的react-native项目。 >

在React Native项目文件夹中运行 react-native run-ios / run-android

参考enter link description here

答案 5 :(得分:0)

要将网络支持添加到现有的 Expo 应用程序,您可以执行以下操作:

  1. 安装最新版本的 Expo CLI:npm i -g expo-cli
  2. 添加网络依赖项:yarn add react-native-web react-dom
  3. 通过运行 expo start:web 在纯网络模式下更快启动您还可以运行 expo start --web,它会立即启动 Webpack。

来源https://docs.expo.io/guides/running-in-the-browser/

答案 6 :(得分:0)

只需在主应用程序文件夹中运行 npm install 即可解决我的问题。