ChatGPT解决这个技术问题 Extra ChatGPT

纱线全局命令不起作用

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

“现代”纱线版本已经显着改变了它们处理问题的方式,这些问题曾经由全球包处理。请参阅 next.yarnpkg.com/cli/dlx、使用 yarn global 时生成的错误消息,或此答案:stackoverflow.com/a/71809403/5440638

N
Nathan Arthur

您应该将 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 而不是 subshell,如下所示: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
A
AndrewD

2018 年 12 月更新

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

Ubuntu 18.04.1 LTS(仿生)

纱线 1.12.3

npm v3.5.2

节点 v8.10.0

zsh 5.4.2

脚步

确认你的全局 bin 路径 yarn global bin

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

设置纱线前缀:确保你的纱线前缀是你的 bin 目录的父目录。当我运行它时,您可以通过运行 yarn config get prefix 来确认,我的前缀是空的,所以我设置它: yarn config set prefix ~/.yarn 将以下内容添加到 ~/.bash_profile 或 ~/.bashrc export PATH="$ PATH:`yarn global bin`" 对于 zsh 用户,请务必将此行添加到 ~/.zshrc 重新启动您的 shell 或启动一个新的 bash -l 或 zsh


谢谢,完美运行!在 WSL 上的 Ubuntu 18.04 上测试
@AndrewD这应该是公认的答案
还参与了 Lubuntu 21.04
Windows 用户在这里 - 只需设置前缀对我有用,谢谢!
这有效,但不是在我每次打开终端时第一次启动 zsh 时......我总是必须重新启动 zsh ......
A
Antoine

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

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

👍🏻


T
Thapedict

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

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

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

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

yarn global bin

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

!警告 !

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

选项 2

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


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

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

brew install -g yarn

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

brew reinstall yarn

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


H
Harsh Patel

对于 macOS,您只需要一步,

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

你能解释一下这段代码吗?非常有用,因为它帮助了我,但我不太明白。
@github292929 阅读此askubuntu.com/questions/720678/…
在 Mac 上不适合我
L
Luddebror

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

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

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

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


在要包含的目录之前添加 %PATH%; 是附加它的方式。如果你省略 %PATH%;它肯定会替换而不是追加。用双撇号包裹也同样重要。 windows-commandline.com/set-path-command-line
F
Flo

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

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

T
Tapha

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

如果您已经安装了 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 步。

复制上面列出的目录。打开您的个人资料。我正在使用zsh。所以我的是~/.zshrc。您可以在此处找到您的信息和更多信息。复制以下内容(根据需要替换您的目录和用户名详细信息,即您从安装错误消息中获得的内容)。别名 yarn="/Users/{你的用户名}/.yarn/bin/yarn"

尝试运行 yarn version 来检查它是否工作。如果是,您应该会在终端中看到版本号。

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


e
ex btrg

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

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


D
Denmau

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

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

因此,请确保将此目录添加到路径中。


您可以通过yarn global bin快速获取目录
N
Neel

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

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