纱线全局命令不起作用

Yarn global command not working

我正在使用 Yarn v0.16.1。如果我理解正确(根据 documentation),yarn global add <package> 应该等同于 npm install -g <package>。但是,当我 运行 文档中的示例(带有 create-react-app)时,命令 运行s 成功但 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 进行全局安装得到了预期的结果,并且一切正常。我缺少纱线什么?

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

Yarn 的全局文件夹因某些原因而有所不同,具体取决于您的安装方式。 You can follow this issue here.

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`"
    

    for zsh users, be sure to add this line to ~/.zshrc

  3. 重启你的shell或开始一个新的

    bash -lzsh

在我的情况下 yarn global bin 不工作。

如果您是这样安装的,请尝试 brew reinstall yarn yarn

从 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"

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

下面要重新安装运行。

brew install -g yarn

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

brew reinstall yarn

//(如果仍未找到纱线)

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

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

运行 进入此问题,但在 Windows 系统上。我所要做的就是将 yarn global bin 添加到 PATH 变量中。

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

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

您可以通过 运行

检查您的全局垃圾箱在哪里
yarn global bin

并且请不要忘记重新启动您正在使用的 CMD window。 编码愉快!

!警告!

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

选项 2

更安全的选择是转到系统属性 > 高级 > 环境变量 > select PATH 单击 编辑 > 然后附加 而不是用;c:\users\YOURUSERNAME\appdata\local\yarn\bin

替换

这是我在 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 检查它是否正常工作。如果是,您应该会在终端中看到版本号。

就是这样,对我有用。

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

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

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

确保您没有删除以前的变量。

对于macOS,只需一步,

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

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

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

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

提出这个答案,希望它能进来 google 并帮助其他人。

使用后未找到 expo 命令 yarn global add expo-cli 在 ubuntu 20.04

中不起作用