【问题标题】:spawn yarnpkg ENOENTspawn yarnpkg ENOENT
【发布时间】:2019-11-17 22:56:32
【问题描述】:

当我运行 expo install expo-permissions

时会发生这种情况

它明确地返回我

使用 Yarn 安装 1 个与 SDK 35.0.0 兼容的原生模块。

添加 expo-permissions@~7.0.0

spawn yarnpkg ENOENT

在您的环境中设置 EXPO_DEBUG=true 以查看堆栈跟踪。

这很奇怪,因为我通常不使用 Yarn。我使用 NPM 安装依赖项。

我知道这个错误与我的文件或某些路径配置不正确有关。我不知道我必须改变哪条路径以及如何改变。

如果有任何其他相关信息需要我在这里添加,请告诉我。

【问题讨论】:

  • 投票this proposal 以缓解 [yarn] 和 [yarnpkg] 周围的标签混淆。
  • 简单的解决方案:如果没有安装yarn,删除yarn.lock文件

标签: node.js react-native expo yarnpkg


【解决方案1】:

我的解决方案和你有同样的问题,你通过 npm 安装 yarn:
npm i -g yarn
我相信这个错误是因为他找不到 yarnpkg 的符号链接造成的。执行此命令时,yarn 将被更新和链接。

【讨论】:

    【解决方案2】:

    您可以在命令后传递标志 --npm。

    expo install [package-name] --npm
    

    【讨论】:

    • 这是最好的答案,因为您不必安装 Yarn 来解决问题。只需将 arg --npm 添加到命令中,一切正常。也适用于“expo update --npm”。
    【解决方案3】:

    最好的解决方案是使用--npm flag

    例子:

    expo install pkname --npm,
    expo update --npm,
    expo upgrade --npm,
    

    这是因为您还没有执行yarn installyarn 命令。

    【讨论】:

      【解决方案4】:

      是的,我尝试了很多方法,最后,我找到了解决方案。 问题是不同的纱线包版本。 所以首先,你需要将 yarn 版本升级到最新。

      打开终端并输入以下内容。

      1. npm install --global yarn

      2. 展会更新

      希望这能解决您的问题。

      【讨论】:

        【解决方案5】:

        我遇到了类似的问题。你应该在你的系统中安装yarn,因为这是 Expo CLI 试图执行的安装包的。对我来说,我的问题是我确实有yarn,但我有一个旧版本。我不得不将我的 yarn 版本更新到 1.19.0。如果您安装此版本,它应该可以正常工作。

        我推荐使用yvm 来安装和管理不同版本的yarn。安装yvm 后,安装yarn 和安装yvm install <version> 一样容易,所以在这种情况下,您可以使用yvm install 1.19.0。如果您因为另一个项目不适用于 1.19.0(有时会发生)而不得不更改版本,您可以安装另一个版本并通过执行 yvm use <version> 在版本之间进行更改。

        希望这会有所帮助!

        【讨论】:

          【解决方案6】:

          这对我有用:

          最新纱线安装 (from here)

          curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

          echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
          
          sudo apt update && sudo apt install yarn
          
          sudo apt update && sudo apt install --no-install-recommends yarn
          

          将此添加到您的个人资料中:export PATH="$PATH:/opt/yarn-[version]/bin"(路径可能会根据您将 Yarn 提取到的位置而有所不同) 在终端中,登录和注销以使更改生效

          yarn --version 检查版本是否为最新 (1.0+)。

          然后expo update <version>(例如:36.0.0)

          考虑: 不要忘记检查您是否关注类似的警告:“warning package-lock.json found. Your project contains lock files generated by tools than Yarn.

          【讨论】:

            猜你喜欢
            • 2021-06-30
            • 2019-06-27
            • 2015-11-20
            • 1970-01-01
            • 2014-11-13
            • 2015-12-15
            • 2016-09-01
            • 1970-01-01
            • 2018-12-20
            相关资源
            最近更新 更多