纱线全局命令不起作用


111

我正在使用Yarn v0.16.1。如果我理解正确(根据文档),yarn global add <package>应等同于npm install -g <package>。但是,当我在docs(带有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进行全局安装具有预期结果,并且一切正常。纱我想念什么?

Answers:


168

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

根据安装方式的不同,Yarn的全局文件夹由于某些原因会有所不同。您可以在此处关注此问题。


6
在编辑了“ .bash_profile”文件以更新对bash shell的更改后,您还应该提供文件source ~/.bash_profile
tfmontague '17

1
在某些系统上,您可能需要运行yarn global bin自己,并使用文字网址~/.bash_profile而不是子外壳,如下所示:export PATH="$PATH:/usr/local/bin"
Nathan Arthur

对于答案中指出的问题,我必须遵循此评论的建议。 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
cirovladimir

1
对于遇到此问题的Ubuntu用户,请添加export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"到您的〜/ .bash_profile
Pitt,

1
for zsh,只需穿上.zshrc
Shad

45

更新2018年12月

只是更新路径对我不起作用。我还必须设置yarn前缀。

  • 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. 重新启动您的外壳或开始一个新的外壳

    bash -l 要么 zsh


谢谢,完美的作品!已在WSL的Ubuntu 18.04上测试
robe007 '19

3

就我而言yarn global bin,这没有用。

brew reinstall yarn如果安装方式是这样,请尝试yarn

👍🏻


2

在Ubuntu上,我通过安装如下软件包进行修复:

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

2

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

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

请记住,将YOURUSERNAME更改为您的帐户用户名。

您可以通过运行来检查全局bin的位置

yarn global bin

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


1
运行'yarn global add vuepress'并创建自述文件后,在Windows 10上解决了我的问题,之前无法找到'vuepress dev'命令。
博兹

1

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

brew install -g yarn

//注意:(对于Mac用户,要更新自制程序)。

brew reinstall yarn

//(如果仍然找不到纱线)


1

这是我在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。您可以在这里找到您的以及更多信息。

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

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

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

就是这样,对我有用。


0

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

据我了解,我的错误是由于缺乏版本管理器的访问权限而引起的


0

AndrewD给出了一个很好的答案,但对于Windows上的用户则有所不同,尤其是步骤3。

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.