【问题标题】:TypeError: cli.init is not a function for react nativeTypeError: cli.init 不是 react native 的函数
【发布时间】:2022-08-23 15:47:03
【问题描述】:

在 MacBook Air M1 芯片中运行 npx react-native init appName 时

TypeError: cli.init is not a function
at run (/opt/homebrew/lib/node_modules/react-native-cli/index.js:302:7)
at createProject (/opt/homebrew/lib/node_modules/react-native-cli/index.js:249:3)
at init (/opt/homebrew/lib/node_modules/react-native-cli/index.js:200:5)
at Object.<anonymous> (/opt/homebrew/lib/node_modules/react-native-cli/index.js:153:7)
at Module._compile (node:internal/modules/cjs/loader:1112:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1166:10)
at Module.load (node:internal/modules/cjs/loader:988:32)
at Module._load (node:internal/modules/cjs/loader:834:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
at node:internal/main/run_main_module:17:47

    标签: react-native apple-m1


    【解决方案1】:

    那是错误来自新版本 0.69.0 您可以使用npx react-native init ProjectName --version 0.68.2,然后稍后升级到 v 0.69。

    【讨论】:

    • 这个答案是正确的。非常感谢。
    • 这个答案使它看起来像 RN 69 中的一个错误,但这是一个重大的变化,虽然这种解决方法有效,但它实际上并没有解决安装了旧版本的 react-native 或 react-native-cli 的根本原因全球范围内。解决它的正确方法是卸载全局 cli(并且不要全局重新安装它),就像在这个答案中解释的那样:stackoverflow.com/a/72768422/390928 除非卸载,npx react-native init 可能不适用于任何未来新版本的 react-本国的。
    • 我已经尝试过该解决方案,但它对我不起作用。是的,react native cli 中存在一些错误,但对于刚开始学习此功能的人来说,这是一个障碍,这将解决我后来将我的项目升级到 69 的问题,并且工作正常。
    • 这个解决方案奏效了。使用 v0.69 甚至没有正确报告错误。新用户可能会因此而受到误导。我在命令cli.init is not a function 中看到的错误
    【解决方案2】:

    安装新的 react-native 全局

    npm uninstall -g react-native-cli
    

    安装新的 react-native 全局

    npm install -g react-native-cli
    

    npm install -g react-native

    并再次创建项目

    npx react-native init AwesomeProject
    

    【讨论】:

    • > 如果您之前安装了全局 react-native-cli 包,请将其删除,因为它可能会导致意外问题。
    【解决方案3】:

    需要使用以下命令清理全局环境:

    yarn global remove react-native
    
    yarn global remove react-native-cli
    
    npm uninstall -g react-native
    
    npm uninstall -g react-native-cli
    

    检查这些列表中是否存在与 react-native 相关的内容:

    yarn global list, npm -g list
    

    安装新的 react-native 全局

    npm install -g react-native-cli
    npm install -g react-native
    

    然后你可以运行:

    npx react-native init ProjectName 
    

    【讨论】:

    • 它没有用 - 它对你有用吗?
    • 它起作用了——它对你不起作用吗?
    【解决方案4】:

    发生这种情况是因为你有一个旧版本的 react native,所以你 需要全局删除 react native 版本并重新安装。

    解决问题的步骤:

    如果你使用纱线:

    第一步: 检查全局安装列表:

    yarn global list
    

    如果您找到 react-native 和 react-native-cli 则继续下一步 并在全球范围内删除它们

    第二步:

    yarn global remove react-native
    yarn global remove react-native-cli
    

    第三步: 再次安装它们

    yarn global add react-native
    yarn global add react-native-cli
    

    如果你使用 NPM:

    第一步: 检查全局安装列表:

    npm -g list
    

    如果您找到 react-native 和 react-native-cli 则继续下一步 并在全球范围内删除它们

    第二步:

    npm uninstall -g react-native
    npm uninstall -g react-native-cli
    

    第三步: 再次安装它们

    npm install -g react-native
    npm install -g react-native-cli
    

    注意:删除您创建的旧项目,然后重新创建它。每一个 一切都会好起来的。

    【讨论】:

      【解决方案5】:

      应该运行:

      yarn global listnpm global list

      并在运行后卸载列表中 react-native 的所有 cli:

      yarn global add @react-native-community/cli
      

      【讨论】:

        【解决方案6】:

        使用此命令删除反应本机 cli

        npm install -g react-native-cli

        现在不需要它了。

        React Native 有一个内置的命令行界面,你可以使用它来生成一个新项目。

        检查reactnative.dev

        【讨论】:

          【解决方案7】:

          只需使用

          npx react-native init YourProjectName --version 0.68.2
          

          命令在 react native 上创建项目。

          【讨论】:

          • 请阅读How do I write a good answer?。虽然此代码块可能会回答 OP 的问题,但如果您解释此代码与问题中的代码有何不同、您已更改的内容、更改的原因以及解决问题的原因,则此答案会更有用没有介绍别人。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-10-28
          • 1970-01-01
          • 2021-08-12
          • 2017-07-27
          • 1970-01-01
          • 1970-01-01
          • 2020-12-25
          相关资源
          最近更新 更多