【问题标题】:Yarn global command not working纱线全局命令不起作用
【发布时间】:2017-03-12 02:00:56
【问题描述】:

我正在使用 Yarn v0.16.1。如果我理解正确(根据documentation),yarn global add <package> 应该等同于npm install -g <package>。但是,当我在文档中运行示例时(使用create-react-app),命令运行成功,但create-react-app 在命令行中不可用。这是输出:

$ yarn global add create-react-app
$ yarn global v0.16.1
[1/4] ????  Resolving packages...
[2/4] ????  Fetching packages...
[3/4] ????  Linking dependencies...
[4/4] ????  Building fresh packages...
success Installed create-react-app@0.6.0 with binaries:
  - create-react-app
✨  Done in 3.22s.
$ create-react-app --help
-bash: create-react-app: command not found

使用 npm 进行全局安装具有预期的结果,并且一切正常。我对 yarn 缺少什么?

【问题讨论】:

    标签: javascript npm yarnpkg


    【解决方案1】:

    您应该将export PATH="$PATH:$(yarn global bin)" 添加到您的~/.bash_profile 或您使用的任何内容中。它会解决这个问题。

    根据您的安装方式,Yarn 的全局文件夹会因某种原因而有所不同。 You can follow this issue here.

    【讨论】:

    • 您还应该在编辑“.bash_profile”文件以更新对 bash shell 的更改后获取它:source ~/.bash_profile。
    • 在某些系统上,您可能需要自己运行 yarn global bin 并使用 ~/.bash_profile 中的文字 url 而不是 subshel​​l,如下所示:export PATH="$PATH:/usr/local/bin"
    • 在答案中指出的问题中,我必须遵循此评论中的建议。 I got global bins working by altering my path from what the docs say in the alternative installation section from export PATH="$PATH:$HOME/.yarn/bin" to export PATH="$PATH:$HOME/.yarn/bin:$HOME/.yarn-config/global/node_modules/.bin"github.com/yarnpkg/yarn/issues/1321#issuecomment-255532028
    • 对于遇到此问题的 Ubuntu 用户,请将 export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin" 添加到您的 ~/.bash_profile
    • 对于zsh,只要放上.zshrc
    【解决方案2】:

    2018 年 12 月更新

    仅更新路径对我不起作用。我还必须设置纱线前缀。

    • Ubuntu 18.04.1 LTS(仿生)
    • 纱线 1.12.3
    • npm v3.5.2
    • 节点 v8.10.0
    • zsh 5.4.2

    步骤

    1. 确认您的全局 bin 路径

      yarn global bin
      

    我得到了:/home/username/.yarn/bin

    1. 设置纱线前缀:

      确保你的 yarn 前缀是你的 bin 目录的父目录。您可以通过运行确认

      yarn config get prefix
      

      当我运行这个时,我的前缀是空的,所以我设置了它:

      yarn config set prefix ~/.yarn
      
    2. 将以下内容添加到 ~/.bash_profile 或 ~/.bashrc

      export PATH="$PATH:`yarn global bin`"
      

      对于 zsh 用户,请务必将此行添加到 ~/.zshrc

    3. 重启你的 shell 或新建一个

      bash -l 或 zsh

    【讨论】:

    • 谢谢,完美运行!在 WSL 上的 Ubuntu 18.04 上测试
    • @AndrewD 这应该是公认的答案
    • 也在Lubuntu 21.04工作
    • 它适用于 Ubuntu 21.10。谢谢!
    【解决方案3】:

    在我的情况下,yarn global bin 不起作用。

    如果你是这样安装yarn的,试试brew reinstall yarn

    ??

    【讨论】:

    • 拯救了我的生命
    【解决方案4】:

    遇到此问题,但在 Windows 系统上。我所要做的就是将 yarn 全局 bin 添加到 PATH 变量中。

    setx path "%path%;c:\users\YOURUSERNAME\appdata\local\yarn\bin"
    

    记得将 YOURUSERNAME 更改为您的帐户用户名。

    你可以通过运行检查你的全局bin在哪里

    yarn global bin
    

    请不要忘记重新启动您正在处理的 CMD 窗口。 编码愉快!

    !警告!

    执行命令时,你的yarn目录前面%path%;很重要。如果您不键入它,您肯定会替换所有系统环境变量。

    选项 2

    更安全的选择是转到系统属性>高级>环境变量>选择PATH点击编辑>然后附加而不是用@替换 987654325@

    【讨论】:

    • 在运行“yarn global add vuepress”并创建自述文件后解决了我在 Windows 10 上的问题,之前无法找到“vuepress dev”命令。
    • 警告:我在 PowerShell 上执行此操作并丢失了所有环境变量
    • @现在你可能没有包含 '%PATH%;'在纱线目录之前,或使用单引号。也成为了这件事的受害者。更安全的选择是转到 System Properties > Advanced > Environment Variables ..并附加该纱线目录
    【解决方案5】:

    要重新安装,请在下面运行。

    brew install -g yarn
    

    // 注意:(更新自制软件)适用于 Mac 用户。

    brew reinstall yarn
    

    //(如果仍然没有找到纱线)

    【讨论】:

      【解决方案6】:

      AndrewD 给出了一个很好的答案,但对于那些在 Windows 上的人来说,这有点不同,尤其是第 3 步。

      请不要像@Thapedict 所说的那样使用命令setx。 它将删除您以前拥有的所有路径,并仅将其替换为给定目录。 如果你想使用 setx,我认为可能有一个标志可以让它附加现有的路径变量,但我不知道是哪一个。仅使用 setx 不会附加到它。

      我只会做系统属性>高级>环境变量>编辑路径>新建> c:\users\YOURUSERNAME\appdata\local\yarn\bin

      以确保您不会删除以前的变量。

      【讨论】:

      【解决方案7】:

      在 Ubuntu 上,我通过安装这样的包来修复:

      sudo yarn global add <package> --prefix /usr/local
      

      【讨论】:

        【解决方案8】:

        这是我在 Mac OSX El Capitan 上使用的过程。

        1. 如果您已经安装了 yarn(我使用了 Curl 命令),请尝试安装它。如果它已经安装,这将弹出,并为您提供它存在的当前目录。

        像这样:

        curl -o- -L https://yarnpkg.com/install.sh | bash
        

        它将显示如下内容:

        Installing Yarn!
        > /Users/{Your Username}/.yarn already exists, possibly from a past Yarn install.
        > Remove it (rm -rf /Users/{Your Username}/.yarn) and run this script again.
        

        不要删除它。继续第 2 步。

        1. 复制上面列出的目录。打开您的个人资料。我正在使用zsh。所以我的是~/.zshrc。你可以找到你的和更多信息here。

        2. 复制以下内容(根据需要替换您的目录和用户名详细信息,即您从安装错误消息中获得的内容)。

          alias yarn="/Users/{Your Username}/.yarn/bin/yarn"

        1. 尝试运行yarn version 以检查其是否正常工作。如果是,您应该会在终端中看到版本号。

        就是这样,什么对我有用。

        【讨论】:

          【解决方案9】:

          对于 macOS,您只需一步,

          export PATH=~/.yarn/bin:$PATH
          

          【讨论】:

            【解决方案10】:

            从 bash 切换到 zsh 时,我遇到了同样的错误,它对我有用:

            in your .zshrc 
            
            # NVM Stuff
            export NVM_DIR="$HOME/.nvm"
            . "$(brew --prefix nvm)/nvm.sh"
            
            # YVM Stuff
            export YVM_DIR="$HOME/.yvm"
            . "$(brew --prefix yvm)/yvm.sh"
            

            据我了解,我的错误是由于无法访问版本管理器

            【讨论】:

              【解决方案11】:

              在安装 Yarn 和 Vue Cli 后,我在 Windows 上遇到了类似的问题。 软件包已安装但无法访问。 问题是安装yarn包的目录不在PATH中。

              在我的例子中,Yarn 包的默认安装目录是 C:\Users\USERNAME\AppData\Local\Yarn

              所以请务必将此目录添加到路径中。

              【讨论】:

              • 可以通过yarn global bin快速获取目录
              【解决方案12】:

              提出这个答案,希望它可以进入谷歌并帮助其他人。

              使用后找不到expo命令 yarn global add expo-cli 在 ubuntu 20.04 中不起作用

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-05-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-03-16
                • 1970-01-01
                相关资源
                最近更新 更多