【问题标题】:TypeError: Cannot destructure property `stat` of 'undefined' or 'null'TypeError:无法解构“未定义”或“空”的属性“stat”
【发布时间】:2021-03-21 23:54:44
【问题描述】:

在 mac 上运行 npm install -g react-native 项目时出现 TypeError。

完全错误

TypeError:无法解构“未定义”或“空”的属性stat。 在对象。 (/usr/local/lib/node_modules/npm/node_modules/@npmcli/node-gyp/lib/index.js:2:29)

【问题讨论】:

  • 这能回答你的问题吗? How to initialize React Native project
  • 它不起作用,它甚至不允许我运行 npm install
  • 看来你的问题不在于反应原生。重写您的问题以包含与运行节点和 npm 相关的错误消息 - 不响应本机。
  • 它在手动删除并重新安装 node.js 后工作,之前我使用这个 cmd 'brew install node' 来安装节点。
  • 我安装了 macOS Big Sur,我现在遇到了这个问题(在更新之前运行良好的项目上)。可能有关系,我还在调查中。

标签: javascript android ios macos react-native


【解决方案1】:

你不应该使用npm install -g react-native

请阅读 React Native 文档以了解如何进行环境设置:https://reactnative.dev/docs/environment-setup

【讨论】:

    【解决方案2】:

    像往常一样,Mac OS 更新往往会破坏一些东西。

    如果您也使用 NVM(比如我)。 我也遇到了这个问题,发现 NVM 正在使用一个名为“系统”的节点版本。我以前从未见过它,NVM 应该使用我设置它使用的版本。

    所以我决定更新 NVM。 (见:https://github.com/nvm-sh/nvm/blob/master/README.md#installing-and-updating

    似乎在那之后工作。

    【讨论】:

      【解决方案3】:

      您可能正在使用npm@latest。在我看来,最新的 NPM 存在一些问题,我在我的 docker 文件中使用 RUN npm install npm@6.14.11 -g 更改了我的版本。

      【讨论】:

        【解决方案4】:

        当我升级到 Big Sur 时,我遇到了同样的问题。这与 npm 有关,而不是 react-native。

        这是我为解决问题所做的:

        删除所有与nodejs相关的内容:

        sudo rm -rf ~/.npm ~/.nvm ~/node_modules ~/.node-gyp ~/.npmrc ~/.node_repl_history
        sudo rm -rf /usr/local/bin/npm /usr/local/bin/node-debug /usr/local/bin/node /usr/local/bin/node-gyp
        sudo rm -rf /usr/local/share/man/man1/node* /usr/local/share/man/man1/npm*
        sudo rm -rf /usr/local/include/node /usr/local/include/node_modules
        sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /usr/local/lib/dtrace/node.d
        sudo rm -rf /opt/local/include/node /opt/local/bin/node /opt/local/lib/node
        sudo rm -rf /usr/local/share/doc/node
        sudo rm -rf /usr/local/share/systemtap/tapset/node.stp
        
        brew uninstall node
        brew doctor
        brew cleanup --prune-prefix
        

        然后通过以下方式再次安装 nvm:

        curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
        
        

        现在,我能够安装所有依赖项,因为现在我有了一个新的 npm 副本(对我来说是 6.4.1)。

        【讨论】:

          【解决方案5】:

          如果您在运行任何具有npm 的命令时遇到相同的错误,则您可能使用节点 8 的 npm 版本错误。

          运行此命令会将您的 npm 反转到节点 6。

          curl -qs https://www.npmjs.com/install.sh|npm_install=6.14.11 sh

          参考: https://github.com/npm/cli/issues/2599

          【讨论】:

            猜你喜欢
            • 2018-09-30
            • 1970-01-01
            • 2020-01-21
            • 2020-05-28
            • 1970-01-01
            • 2021-03-01
            • 1970-01-01
            • 2019-07-15
            • 2020-01-24
            相关资源
            最近更新 更多