纱线全球命令不起作用

时间:2016-10-29 09:07:06

标签: javascript npm yarnpkg

我正在使用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进行全局安装具有预期的结果,一切正常。纱线缺少什么?

11 个答案:

答案 0 :(得分:72)

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

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

答案 1 :(得分:13)

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

    bash -lzsh

答案 2 :(得分:2)

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

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

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

您可以通过运行来检查全局垃圾箱在哪里

yarn global bin

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

答案 3 :(得分:1)

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

  1. 如果已经安装了纱线,请尝试安装它(我使用了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来检查其是否正常运行。如果是这样,您应该会在终端中看到一个版本号。

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

答案 4 :(得分:0)

在我的情况下,yarn global bin无效。

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

??

答案 5 :(得分: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"

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

答案 6 :(得分:0)

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

brew install -g yarn

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

brew reinstall yarn

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

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

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

确保不删除以前的变量。

答案 9 :(得分:0)

对于 macOS,您只需要一步,

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

答案 10 :(得分:0)

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

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

所以请确保将此目录添加到路径中。