react-native:无法识别命令“run-android”。可能是由 npm install 引起的

Posted

技术标签:

【中文标题】react-native:无法识别命令“run-android”。可能是由 npm install 引起的【英文标题】:react-native: Command `run-android` unrecognized. Maybe caused by npm install 【发布时间】:2017-11-21 14:18:04 【问题描述】:

最近我开始遇到这个问题,当我安装一个 react-native 包时 (例如:react-navigation)进入我的项目,一大堆包被删除(包括反应,我认为反应原生)。

然后当我尝试运行命令“run-android”时,它说它无法识别。

我最近更新到最新的npmreact-native-cli。 “npm install”有问题吗?还是react-native

node version: 8.1.2 <br/>
react-native-cli: 2.0.1 <br/>
react-native: 0.45.1 <br/>
react-navigation: 1.0.0-beta.11

以下是重新创建的步骤:

第 1 步 - 创建项目。

第 2 步 - 运行“run-android”命令(可行)。

第 3 步 - 将“react-native-navigation”安装到项目中。

Notice in the image above. Seems like all the other packages are removed from the project.<br/><br/>
第 4 步 - 尝试再次运行“run-android”命令。 (会失败,但以前可以工作)

您知道问题是什么以及解决方法吗?

【问题讨论】:

你安装了 react-native-cli 吗? 是的@alejandrogarciarobles。我用版本信息更新了问题。 您是否检查过是否从 node_modules 中的 react native 中删除了任何内容? 是的@Raymond。除了react-navigation(根据上面的例子)之外的所有包都被清空了。里面剩下的文件很少。 npm install 命令将起作用 【参考方案1】:

找到解决方案here

一开始运行 npm install 不起作用,但后来删除 package-lock.json 文件并运行 npm install 完成了这项工作。

之后我单独安装了react-navigation 包,它运行良好。

【讨论】:

好像在最初创建项目的时候,如果安装了yarn,后面安装其他包/依赖的时候会和npm冲突。这就是为什么我们必须使用 npm install 删除并重新安装 node_module 包(只需一次)。【参考方案2】:

这就是从头到尾对我有用的东西。

    react-native init NavTest (使用此命令在本地安装 cli) 已删除 package-lock.json npm install --save react-navigation 删除了生成的package-lock.json npm install react-native run android 有点难看,我不完全知道发生了什么,但这有效。 https://reactnavigation.org/ 用于运行示例代码。

或将其复制到 index.android.js

import React,  Component  from 'react';
import  
  AppRegistry,
  Button,
 from 'react-native';
import 
  StackNavigator,
 from 'react-navigation';



class HomeScreen extends Component 
  static navigationOptions = 
    title: 'Welcome',
  ;
  render() 
    const  navigate  = this.props.navigation;
    return (
      <Button
        title="Go to Jane's profile"
        onPress=() =>
          navigate('Profile',  name: 'Jane' )
        
      />
    );
  


class ProfileScreen extends Component
  static navigationOptions = 
    title: 'Jane',
  ;
  render() 
    return (null);
  


const NavTest= StackNavigator(
  Home:  screen: HomeScreen ,
  Profile:  screen: ProfileScreen ,
);

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

【讨论】:

以上是关于react-native:无法识别命令“run-android”。可能是由 npm install 引起的的主要内容,如果未能解决你的问题,请参考以下文章

IDE 无法识别 Jest 及其功能

React-native 链接无法正常工作

-bash:react-native:找不到命令 mac

react-native 有没有啥 api 可以识别我的发布是 aab 格式还是 apk 格式?

React-Native无法导入库

如何使用给定的 nativeID 识别目标 c 中的视图(在 react-native 中给出)