<p>yarn global add不能正确安装二进制文件</p>

创建于 2016-10-11  ·  120评论  ·  资料来源: yarnpkg/yarn

您要请求_feature_还是报告_bug_?
_bug_

目前的行为是什么?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
create-react-app not found

预期的行为是什么?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed [email protected] with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
/usr/local/bin/create-react-app

请提及您的node.js,yarn和操作系统版本。

➜  ~  system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.12 (16A323)
      Kernel Version: Darwin 16.0.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

➜  ~ node --version
v6.7.0
➜  ~  yarn --version
0.15.1
cat-bug cat-compatibility

最有用的评论

运行yarn global bin并将其添加到您的$PATH

所有120条评论

在同一系统上,这里的行为相同。

请注意,这并不是create-react-app所独有的。 mean-cli出现相同的问题。

在Ubuntu 15.10系统上也得到了这个

运行yarn global bin并将其添加到您的$PATH

这样就解决了。 但这在这里没有任何记录: https :
(我的意思是记录了yarn global bin ,但是该示例并不建议必须将其添加到PATH中)

在我的机器上,这将返回/usr/local/Cellar/node/6.7.0/bin 。 这是否意味着我所有的全局二进制文件都与此节点版本相关联,如果我进行更新,则必须重新安装它们。 看起来很乱吗?

我注意到的另一件事是"$(yarn global bin)"返回^[[2K^[[1G/usr/local/Cellar/node/6.7.0/bin 。 尝试在.zshrc添加export="${PATH}:$(yarn global bin)"时,我做错什么了吗?

没有文档AFAIK。 它应该是。 随时提交PR。
阅读本文以了解为什么全局路径是特定于版本的。

您确定@wokalski引用了正确的问题吗? 我什至不明白为什么是相关的...

@Fahrradflucht对不起! 解决它。

好,知道了!

然后我剩下这个问题:

我注意到的另一件事是“ $(yarn global bin)”返回^ [[2K ^ [[1G / usr / local / Cellar / node / 6.7.0 / bin。 当我尝试向.zshrc中添加export =“ $ {PATH}:$(yarn global bin)”时,我做错什么了吗?

如果我更确定自己没有犯一个愚蠢的错误,我会提出一个新的问题😁

@Fahrradflucht不仅仅是您,我在使用普通旧bash的macOS上也遇到了同样的问题。

export PATH="/usr/local/Cellar/node/6.3.1/bin:$PATH"

作品

export PATH="$(yarn global bin):$PATH"

才不是。 我已经开了一个问题; https://github.com/yarnpkg/yarn/issues/851

yarn global bin /usr/bin在我的系统上是/usr/local/bin以使我免受烫发的困扰。

现在,我正在考虑...为什么yarn global bin返回~/.yarn-cache/.global/node_modules/.bin/

@kaihendry因为纱线是由Homebrew安装的

macOS上的相同问题

Yarn似乎没有在$(yarn global bin)安装二进制文件,因为我在OSX上使用nvm是/Users/username/.nvm/versions/node/v6.9.2/bin

在执行yarn global add nodemon ,无处可寻,并且在冗长的安装中似乎没有任何内容表明将任何文件都放在bin目录中。

更新

yarn global remove nodemonyarn global add nodemon固定了它,并将其正确放置在$(yarn global bin) 。 但是,详细日志中仍然没有任何内容...

@ c0bra完全相同的问题。

我看到一份报告已在0.20 RC中修复。 有人可以验证一下吗?

我只是在v0.20.0中遇到了这个问题,但是通过删除并重新添加该软件包(如@ c0bra所述)解决了该问题。

在v0.20.3中仍然无法为我工作:

$ cd $(yarn global bin)
$ ls 
tern@  yarn@  yarnpkg@
$ yarn global add ember-cli
yarn global v0.20.3
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
warning No license field
Done in 3.81s.
$ cd $(yarn global bin)
$ ls
tern@  yarn@  yarnpkg@

仍然被macOS上通过homebrew安装的0.20.3打破了。

今天也遇到了同样的问题(自制安装,yarn v0.20.3)。 导致我忘记在安装全局软件包之前将bin文件夹导出到我的PATH。 我使用导出它:
export PATH="$(yarn global bin):$PATH"
然后删除并重新添加全局软件包,以正确链接二进制文件。 (感谢@ c0bra)

对我来说(macOS Sierra和通过Homebrew产生的0.21.3 )现在对我有用(以前没有)。 不得不yarn global remove ----- && yarn global add ----

我使用Yarn v0.21.3遇到了@erizocosmico的相同问题(我正在使用nvm)。 通过以下步骤对其进行了修复:

  1. 在我的.zshrc文件中添加以下内容:
export PATH="$(yarn global bin):$PATH"
  1. yarn global remove [package-name]然后yarn global add [package-name]

唯一的问题可能是该软件包实际上安装在/usr/local/Cellar/node/7.7.1/bin ,因为通过Homebrew安装Yarn时,还会在Homebrew的路径下安装Node可执行文件,这看起来很奇怪,并且可能与nvm冲突。 并且由于.zshrc文件是在HOME的路径下执行的,因此全局软件包将始终安装在Homebrew的Node的bin文件夹下。

  1. 此处的修复只是暂时的。 当出现新的节点更新时,您的全局软件包将停止工作,需要重新链接。 暂时将全局包切换为npm

  2. 同样,如果您通过npm安装了全局软件包,则yarn将被忽略。

我如何解决这个问题:

  1. $ yarn global remove ___

  2. 将Yarn添加到PATH之前,请确保已获取NVM。

# First...
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

# Then...
export PATH="$(yarn global bin):$PATH"
  1. $ yarn global add ___

  2. 确认全局软件包安装路径

$ which ___
# Should give you...
/path/to/nvm/versions/v7.6.0/bin/___

我尝试了上面提出的解决方案,但对我而言不起作用。
我看到这可能是由于安装纱线的方式不同以及纱线的二进制位置(在我的情况下,纱线是通过apt-get ,并且在/usr/bin下可用)。

我安装余烬的错误是:

$ yarn global add ember-cli
yarn global v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - ember
error We don't have permissions to touch the file "/usr/bin/ember".

请注意最后一行:
yarn尝试将炭烬箱放入(根目录)文件夹: /usr/bin

在这一点上,我找到了两种选择:

  • a) sudo yarn global add ember-cli
    使用sudo安装余烬是可行的,因为然后yarn可以写入/usr/bin
  • b)将yarn/global/node_modules/.bin文件夹放入$ PATH中; 例如,在.(whatever)rc文件的末尾添加以下内容:
    export PATH=$PATH:$GOBIN:~/.config/yarn/global/node_modules/.bin/
    这样,纱线全局二进制文件将在$PATH可用。

这对我有用!

  1. 在我的.zshrc文件中添加以下内容:
    export PATH =“ $(yarn global bin):$ PATH”
  2. yarn global删除[package-name],然后yarn global添加[package-name]

同样在这里:

yarn --version
0.21.3
yarn global add mocha
success Installed "[email protected]" with binaries: [..]
$ mocha
-bash: mocha: command not found

使用以下命令使其正常工作:
npm install --global mocha

用自制软件进行升级会引起另一个问题,因为安装有纱线的垃圾箱不会重新放置。 这就是我所拥有的:

$ yarn global bin
/usr/local/Cellar/node/7.4.0/bin
$ ls $(yarn global bin)
bower     ember     node      phantomjs

现在升级:

$ brew update && brew upgrade

现在这个:

$ yarn global bin
/usr/local/Cellar/node/7.8.0/bin
$ ls $(yarn global bin)
node

致电余烬:

$ ember
-bash: ember: command not found

二进制文件不见了,需要手动重定位😦

Mac OSX

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.8.0
npm --version
4.2.0
yarn --version
0.22.0

我试着把:
export PATH="$(yarn global bin):$PATH"
如上所示,在我的.zshrc文件中...重新启动了终端,什么也没发生。 我什至重启了机器。 没发生什么事。

我尝试在.zshrc中键入以下代码段:
export PATH="$PATH: yarn global bin "
https://yarnpkg.com/zh-CN/docs/install#mac -tab上建议使用此功能,但仍然没有任何反应。

还有其他建议吗? :)

升级到yarn v0.22.0之后,我丢失了ember可执行文件:

$ brew update && brew upgrade

但是,删除它并重新添加对我来说解决了这个问题:

$ yarn global remove ember-cli
$ yarn global add ember-cli

是的,这就是解决方法。 但是我们应该找到一种在节点更新时轻松更新内容并将其移到新目录的方法。

为什么没有全局软件包列表? 我们为什么没有.yarnrc.json.package.json东西,并且有一个带有依赖项列表的普通软件包文件,这将是安装的全局软件包的原因?

当我运行yarn global bin ,出现了错误: No such file or directory: 'global' ,我不确定出了什么问题。
纱线-版本#0.22

yarn global remove typescript && yarn global add typescript对我来说已解决问题。

OSX:El Capitan。
节点:4.7.2(通过n)

0.17升级到0.22之后,当前正在经历此操作。 此处建议的修复程序有效,但过去我不必这样做,这使我相信这是一个错误。

Mac OSX

zsh --version
zsh 5.3.1 (x86_64-apple-darwin15.6.0)
nvm --version
0.33.1
node --version
v7.9.0
npm --version
4.2.0
yarn --version
0.23.2

我尝试将这些代码段放入我的.zshrc配置文件-> 1,2&3中。

  1. 根据以上建议:
    export PATH="$(yarn global bin):$PATH"
  1. 根据https://yarnpkg.com/en/docs/install
    export PATH="$PATH: yarn global bin "

  2. 我试图在我的.zshrc中没有任何代码片段。

我重新启动了终端,什么也没发生。
我什至重启了机器。 依然没有。

我遇到了同样的问题,这是我的解决方案:

问题

  • 使用brew安装了yarn
  • 使用yarn global add ...不会安装到yarn global bin返回的路径(在我的情况下为/usr/local/Cellar/node/7.9.0/bin
  • yarn global add ...安装软件包的实际路径是~/.config/yarn/global/node_modules/.bin

  • 将此添加到我的路径配置中:
export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"

系统详情

Mac OS 10.12.4 (16E195)
zsh --version
zsh 5.3.1 (x86_64-apple-darwin16.3.0)
node --version
v7.9.0
yarn --version
0.23.2
brew --version
Homebrew 1.1.12
Homebrew/homebrew-core (git revision a29be4; last commit 2017-04-14)

我有一个类似的问题。 yarn global bin的输出为/usr/local/bin 。 在不使用sudo( yarn global add gulp-cli )的情况下全局安装gulp-cli会得到error We don't have permissions to touch the file "/usr/local/bin/gulp" 。 使用sudo( sudo yarn global add gulp-cli )成功进行全局安装,但是运行gulp输出bash: gulp: command not found

同样非常奇怪:运行sudo gulp成功(猜测烫发有问题,进入/usr/local/bin并运行./gulp会拒绝权限,但运行sudo可以),运行yarn global lssudo yarn global ls输出

yarn global v0.22.0
warning No license field
Done in 0.26s.

我正在使用npm 4.5.0,yarn 0.22.0和节点v7.7.3运行Arch Linux。
是的,对于我的用户和root用户, /usr/local/bin显然都在我的路径上。

编辑(root和用户路径):

[steventheevil@Steven-PC Downloads]$ su
Password: 
[root@Steven-PC Downloads]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin
[root@Steven-PC Downloads]# exit
exit
[steventheevil@Steven-PC Downloads]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/ruby/gems/2.4.0/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/steventheevil/.gem/ruby/2.4.0/bin

在ArchLinux上也一样。

在我的情况下,软件包yo (和其他软件包)已安装到/home/agilob/.config/yarn/global/node_modules/yo/lib 。 我正在尝试使用jhipster,但yanr声称它使用/usr/bin安装软件包:

$ yarn global bin
/usr/bin

它甚至没有特权在那里创建文件。

执行命令:
/home/agilob/.config/yarn/global/node_modules/yo/lib/cli.js jhipster正常工作。

谢谢@bcessa ,即时通讯遇到了同样的问题。 使用以下路径$HOME/.config/yarn/global/node_modules/.bin正常工作。

我也看到global bin路径不同步的问题:

  • macOS 10.12.4
  • 从nodejs.org pkg安装的node.js LTS
  • 由安装脚本安装的纱
$ which node
/usr/local/bin/node

$ node --version
v6.10.2

$ which yarn
/Users/jdub/.yarn/bin/yarn

$ yarn --version
0.23.2

$ yarn global bin
/usr/local/bin

# But yarn global add installs to ~/.config/yarn/global, so I've added it to my path, e.g.

$ which testim
/Users/jdub/.config/yarn/global/node_modules/.bin/testim

重复的: https :

@OmgImAlexis不确定它是否是一个重复的副本-有些问题的示例不涉及从自制软件安装的节点或yarn。

很好,但是如果一次提交解决了两个问题,就可以在两个问题之间建立一个引用。 👍

在覆盆子上用纱线0.22也会遇到这种情况😃

全局安装的软件包(例如CRA,eslint等)正在为我找到。

但是yarn global ls除了完成以外什么都不显示

当节点由nvm安装时,也会出现此问题,我认为这不是自制软件。

$(yarn global bin)已经在我的路径上,但是例如:

> nvm install 6.10.2
> npm install -g yarn
> which yarn
~/.nvm/versions/node/v6.10.2/bin/yarn
> yarn global bin
~/.nvm/versions/node/v6.10.2/bin
> yarn global add yo
> ls ~/.nvm/versions/node/v6.10.2/bin
node    npm     yarn    yarnpkg

在此示例中, yarn global add yo不在bin路径中生成yo二进制文件。

在这里,我在这里添加了一些测试: https :

@旁观者

从yarn-0.23.4.msi安装的纱线,平台:Windows 10,MinGW。
在yarn global add *之后,我的全局命令不起作用。
似乎yarn将全局程序包存储在:

%USERPROFILE%\AppData\Local\Yarn\config\global\node_modules\.bin

将全局命令添加到系统路径后,该命令将起作用。

我在使用nvm时也遇到了这个问题。

那里同样的问题:

sharikovvlad:global svlad$ node -v
v7.10.0
sharikovvlad:global svlad$ yarn --version
0.24.4
sharikovvlad:global svlad$ sw_vers -productVersion 
10.12.4
# macOS Sierra 10.12.4

我用Brew Package Manager安装了纱线。

我显然通过将其添加到.bash_profile来解决了这个问题:

export PATH="$(yarn global bin):$PATH"sharikovvlad:~ svlad$

但是显然,所有软件包在节点更新后都会被破坏。

我试图进行全局添加ios-deploy。 二进制文件存在于〜/ .config / yarn / global / node_modules / ios-deploy / build / Release /中,但不存在于/ usr / local / bin或PATH中的任何其他位置。

Node v7.8.0和Yarn版本v24.6中的相同问题...我也尝试使用--prefix标志

yarn global add prettier --prefix /Users/newuser/.nvm/versions/node/v7.8.0/

没用

我不确定为什么这个问题已经解决,如果人们仍然难以弄清到底是什么在放二进制文件,似乎将它们安装在一个或多个文件夹(.config和.npm)中,但指向另一个文件夹(地窖), &如果yarn网站尚未明确记录此问题并提供了一些建议,以供参考。

我无法让Atom编辑器查找和使用yarn所安装的全局eslint。

我设法解决了这个问题。 问题似乎是Homebrew版本的Node在NVM安装之后才将其自身添加到PATH中。 一旦知道了这一点,我要做的就是卸载已安装的Node Homebrew,并且可以正常工作。

@volkanunsal我不确定我明白你的意思

抱歉,我的意思是问题是我也有另一个
安装Node。 NVM之后添加了该安装的路径
安装,因此优先。 那是纱线放进去的地方
全局软件包,但是不是我使用的Node,所以我的命令
我用yarn global安装的软件包失败了。 那可能不是
您遇到的同样问题,但我认为值得一提。 当有
是Node的多个安装,Yarn将使用路径为
最近添加到您机器的PATH中。

对我而言,请通过设置yarn前缀进行固定,然后重新安装所有模块

yarn config set prefix $(npm config get prefix)

通过nvm切换节点版本时,我的yarn global bin没有更新,这似乎也是问题的根本原因。

更新:
即使通过删除~/.yarn文件夹并重新安装来手动修复错误的yarn global bin
yarn global add appium仍然不会在全局bin文件夹中创建任何内容。 此功能似乎已完全损坏...

这里讨论的分辨率似乎可以解决该问题。 将此添加到.bash_profile

export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"

不,不是。 这适用于您有权访问.bash_profile 。 大多数程序本身都不具备此功能(运行npm test而package.json使用二进制文件,该文件与yarn一起全局安装,很不走运)。 如果您在全球范围内安装某些产品,则无需任何进一步配置即可立即使用。 只要将二进制文件安装到磁盘上任何位置的特定于纱线的文件夹中,只要存在指向/usr/lobal/bin的符号链接,就可以了。

我对该命令的测试用例为(类unix系统):

  • 软件包安装后,将二进制文件的符号链接创建到/usr/local/bin
  • 升级全局软件包后,请确保符号链接仍然有效
  • 升级纱线后(并可能将全局安装的软件包保留在纱线版本文件夹中的某个位置,例如path/to/yarn/vX.Y.Z/packages/... ),请确保符号链接仍然有效

与Homebrew的工作方式类似。

当您尝试在Docker容器中使用Yarn时,这是一个大问题。

@gossi ,这不是直接修复的问题。
在许多操作系统上,/ usr / local / bin不可用,您可能需要对其进行root访问,如果使用多个版本的Node(nvm),则仅一个位置可能不够。

随时提出理想的解决方案。

@bestander好的,让我们将其限制为可以使用/usr/local/bin平台;)
Nvm是另一个应从属于彼此协作的问题。

@bestander NPM如何解决这个问题? 他们的解决方案适用吗?

有没有人想在整个OS的所有这些全局bin路径中扎根?
随时开始新一期并发送PR。
更新全局垃圾箱的代码在这里https://github.com/yarnpkg/yarn/blob/master/src/cli/commands/global.js#L72 ,看起来很简单。

我认为我们可以在这里获得一些很棒的用户体验,但是我们需要一些帮助。

@bestander我认为问题出在updateCwd中

发送公关:)

我仍然有这个问题:(

@JikkuJose我也仍然遇到这个问题。 我使用命令yarn global add prettier 。 漂亮的文件安装在.config/yarn/global/node_modules路径中。

我已经在我的$PATH添加了yarn global bin (在我的系统上是/usr/local/bin ),但这在没有安装东西的地方没有帮助。

纱线版本: 0.27.5
节点版本: v6.11.1

我正在使用以下命令来安装Gulp:

$ yarn global add gulp

但是,这没有给我显示任何内容:

$ ls -lah `yarn global bin` | grep gulp

$ cat /etc/issue
Ubuntu 17.04 \n \l
$ uname -a
Linux intrepid 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ node --version
v8.1.3
$ nvm --version
0.33.2

这仍然是一个问题吗? npm不受此困扰。

只是说。

因为这个原因,我才停止使用纱线。 :/:/

直到纱线1.1.0表现良好,现在找不到我的全局变量

success Installed "[email protected]" with binaries:
      - bower
✨  Done in 10.40s.
 $ bower
fish: Unknown command 'bower'
$ uname -a
Darwin wpa-25-242.dyn.huji.ac.il 16.3.0 Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:58 P
ST 2016; root:xnu-3789.31.2~1/RELEASE_X86_64 x86_64

@hookdump @Spongman @bennypowers ,您可以看到此问题已关闭。 如果您可以提出一个新的问题,包括复制步骤以及有关系统配置的一些详细信息(例如,您是否以root用户身份进行尝试,默认情况下哪个纱线使用的文件夹启用了写操作,等等),那么您可以复制并开始正在努力。

如果您有兴趣,那人也可以成为您!

然后请链接到这里,因为google就是发送给所有人的地方。

也许@hookdump@Spongman@bennypowers与我有同样的问题? https://github.com/yarnpkg/yarn/issues/4702吗?

为什么仍在发生此问题?

@yordis您使用的是zsh吗?

如果是这种情况,问题#4702可能与您的问题有关

如果您的PATH环境设置不正确,则需要对其进行修复。 执行yarn global binecho $PATH开始研究解决的问题

不应该关闭。 仍然有问题。

@ lili21请提出新的问题。

使用zsh,我有同样的问题。 yarn global bin返回/home/dandv/.yarn/bin ,它不在$ PATH中。

~ yarn global add polymer-cli
yarn global v1.3.2
[1/4] Resolving packages...
warning polymer-cli > [email protected]: ...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/
warning polymer-cli > [email protected]: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
warning polymer-cli > polyserve > @types/[email protected]: See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/12826
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - polymer
Done in 25.08s.
➜  19:17 polymer
zsh: command not found: polymer
➜  19:17 polymer-cli init
zsh: command not found: polymer-cli
➜  19:17 yarn --version
1.3.2

这仍然是一个问题吗? npm不受此困扰。

然后弄清楚npm如何处理它,并发送拉取请求?

该存储库的所有者仅对此投诉的巨大线索做出响应,这是无处不在的OSS质量失败的古老呼声:“自己修复”?

开源项目是社区项目。 Yarn不仅由Facebook的开发人员构建,而且由更广泛的开源社区构建。 我在Facebook工作,但这与我对Yarn的贡献并没有真正的关系,因为通常我会在工作时间以外进行工作。

我只是厌倦了人们以为社区欠了他们一些东西,却没有退还任何东西。 因此,一些开源开发人员禁用了其GitHub存储库的“问题”部分。 特别是对于开发团队较小的项目,尝试解决每个问题是一种轻松的工作方式。 在安装根据BSD或MIT许可(包括Yarn)获得许可的任何软件时,您同意的许可明确指定该软件按原样提供,不提供任何担保,也不保证其适用于特定目的。

我们在Facebook上有一句话:“代码胜过争论”。 与其抱怨什么,不如花时间去修复它。 这是对时间的更有效利用。 这就是开源的全部精神:一个为共同目标做出贡献的人组成的社区。

对于这个问题,在我看来,人们的$PATH缺少Yarn可执行目录。 安装程序会明确告诉您如何将其添加到路径中,Windows安装程序将自动为您执行此操作(我们也应该在Debian软件包中开始执行此操作)。 我建议检查npm做什么的原因是,它们可能会自动编辑$PATH有人需要进行调查,看看他们在做什么。 任何人都可以做到。

我也刚遇到这个问题。 第一次尝试使用纱线+包裹,因此无法“正常工作”。

为什么仍在发生此问题,为什么这个问题仍未解决?,我在纱线上工作了2个星期,直到今天我遇到了全球性的PKG,并且它们与NVM的配合不好。 此外,我做了yarn配置设置的前缀和--prefix,它没有用,它一直安装到默认的全局前缀...
也许我会在几天后尝试修复它...

像我上面的每个人一样处理这个问题。 我的期望是,当使用-global标志时,_yarn_会将软件包安装在与_npm_相同的位置。

有什么原因或方案不是最佳解决方案或默认解决方案?

  • 人们实际上可能将此设置为默认值以外的其他值(我愿意)。
  • 该路径很可能已经在我们的环境变量中。 (在Windows计算机上安装任何_npm_之后,首先要解决此问题。)
  • 一个简单的npm root -gnpm config get prefix显示全局安装的模块的位置。

IMO,我认为我们应该考虑更改yarn global的默认行为,以将其安装在_npm's_全局前缀所在的位置

这确实是一个合理的想法。

最近,我在Linux上遇到了全局路径问题,这很棘手
找到我需要添加到PATH的路径。

缺点是这对于已经拥有
设置其纱线路径。
在某些情况下,默认的全局npm bin是/ usr / local / bin或其他东西,它
暗示将其与sudo一起使用,这不是纱线的方法。

我想知道“ yarn global add”命令是否只能检查是否已安装bin
位置在PATH中,如果不是,则打印警告?
会顺利吗?

2018年1月5日星期五,5:12 AM Mark Drake [email protected]写道:

像我上面的每个人一样处理这个问题。 我的期望是
yarn会将软件包安装在与npm相同的位置,
使用-global标志时。

是否有任何原因或方案无法达到最佳效果或
默认解决方案?

  • 人们实际上可能将此设置为默认值以外的其他值(
    做)。
  • 该路径很可能已经在我们的环境变量中。
    (在进行任何npm调试后,这已作为第一步解决了
    安装在Windows计算机上。)
  • 一个简单的npm root -g或npm config get前缀可以显示位置
    全局安装的模块的数量。

IMO,我认为我们应该考虑更改纱线的默认行为global安装在与npm的global prefix相同的位置

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/yarnpkg/yarn/issues/648#issuecomment-355551314或静音
线程
https://github.com/notifications/unsubscribe-auth/ACBdWMvBOVNFKloPPFBzpar60Gu0Qpbrks5tHh-egaJpZM4KT3-H

我想知道“ yarn global add”命令是否只能检查安装的bin位置是否在PATH中,并显示警告(如果不是)?

我喜欢这个主意。 任何不同之处都将是我们在1.0版本中所做的重大更改,除非有其他原因,否则我不认为再次更改此更改不是一个好主意。 在https://github.com/yarnpkg/yarn/pull/3721中对此进行了很长的讨论,并引用了问题和PR。

一个简单的npm root -g或npm config get前缀可以显示全局安装的模块的位置。

毛线的等效yarn global dir

如果发现未安装打字稿中的二进制文件,并且已安装@angular/cli ,则将其删除并尝试再次安装打字稿。 那对我有用。

奇怪的? 绝对!

@Fahrradflucht ,绝对正确这是为什么文档不建议在环境的$ PATH中添加yarn路径的原因。

使用ubuntu 17.10可以为我解决以下问题:

$ echo export PATH = \ $ PATH:$ {yarn global bin)>>〜/ .profile
$ source〜/ .profile

@DavidNorena这些文档实际上确实提到了这一点,但是由于这是设置步骤,因此它位于安装页面中。 即便如此,它仍然没有像在安装页面https://yarnpkg.com/en/docs/install上的Linux选项卡中那样非常清楚,路径设置部分位于每个Linux发行版的说明之后。我想大多数人都使用Ubuntu (位于列表的第一位),因此永远不要向下滚动页面,也永远不会看到其他设置步骤。

但是仍然不清楚,我不知道有PATH SETUP部分,我只是按照Linux Box版本的步骤进行操作,但是没有指示是否转到页面末尾。

谢谢@jthegedus ,下一次我将浏览文档中的所有部分,没有人知道。 :D

反复处理此问题后,我终于找到了适合我的方案的解决方案,我认为我可以分享一下,以防它对某人有所帮助。

供参考,我在MacOS (_Sierra_)上,使用zsh (以及_ohbr-_my_zsh_和_Homebrew_一起安装), NVM (_0.33.8_通过_Homebrew_ _-无节点_安装)

Yarn的全局bin设置为/users/MyUserName/usr/local/bin并且zsh无法识别全局安装的Yarn软件包,因为这不在我的PATH中。 虽然可以添加用户路径,但我还是决定将Yarn全局bin设置为使用/usr/local/bin ,该路径已经在NVM切换Node版本时不会中断。

我在typescript的全局安装中也遇到了类似的问题。

执行yarn global bin输出/usr/local/bin并且所有其他全局包都将二进制文件添加(符号链接)到/usr/local/bin中。

当我执行yarn global add typescript ,输出为:

[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed "[email protected]" with binaries:
      - tsc
      - tsserver
✨  Done in 4.89s.

尝试执行tsctsserver命令会导致command not found: tsc
/usr/local/bin不会显示tsctsserver二进制文件。

  • 使用npm (已测试v5.6.0 )时,此方法工作正常
  • 我正在使用yarn v1.5.1macOS 10.13.3

@Nexxado我按照您的描述执行了您的步骤,并从Yarn得到了相同的消息。 但是,软件包已按预期安装,并显示在/usr/local/bin 。 输入tsc -v输出Version 2.8.1
我正在将nvmnode version 9.6.1npm 5.6.0

您是否曾经尝试过安装此软件,如果可以,是否可以确认已将其删除? 我在使用npmhomebrew早期版本安装的某些软件包中遇到了麻烦,这些软件包干扰了通过Yarn进行的全局安装。

@SiriusBits

您是否曾经尝试过安装此软件,如果可以,是否可以确认已将其删除? 我在使用较早版本的npm或homebrew安装的某些软件包中遇到了麻烦,这些软件包会干扰通过Yarn进行的全局安装。

那是可能的,我不记得是否这样做。
我将nvmnode v8.9.3npm 5.6.0

您是否能够修复您正在谈论的“某些程序包”?

提前致谢 :)

@Nexxado我做到了。 我有使用npm安装的Gulp CLI,但是无法使用Yarn进行全局安装。 一旦删除它并重新安装了Yarn,它就可以工作了。

我使用asdf-nodejs安装了节点,并且在macOS中对yarn 1.6.0遇到了相同的问题

在.zshrc文件中添加了此行即可解决此问题。

export PATH=/Users/rods/.asdf/installs/nodejs/8.9.4/.npm/bin:$PATH

为什么关闭此问题? 我在Linux上面临着同样的问题

@jthegedus @DavidNorena您是否有兴趣改进文档,以便其他人可以从中受益?

@BYK我将在本周创建的PR中链接此问题:+1:

在Window 10上面临相同的问题。

yarn global diryarn global bin都在%PATH%中,但未安装任何二进制文件。

删除并重新添加软件包没有帮助。

纱线1.7.0
Node.js 10.3.0

同样在这里。

仍在1.10.1中被打破:

$ yarn global add typescript
yarn global v1.10.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 0.47s.

$ yarn global bin
C:\Users\mikem\AppData\Local\Yarn\bin

$ yarn global list
yarn global v1.10.1
Done in 0.14s.

我看到ppl将路径添加到.bashrc

export PATH="$(yarn global bin):$PATH"

export PATH =“ $(yarn global bin):$ PATH”

NB,尼斯,666

同样的问题。 已安装并与yarn global add serve 。 之后,启动服务失败:“服务:找不到命令”。 手动更新PATH对我没有帮助。 我安装了npm服务,现在可以使用了。 真正奇怪的是,这个问题已经存在了2年以上,并且仍未解决。

-编辑-解决。 查看#648
仍然面临这个问题。 在Fedora上安装了yarn,正在使用nvm来管理节点版本。 在全球范围内将pug-cli安装在纱线中。 找不到正在运行的pug返回的命令。 使用npm安装pug-cli时,命令运行。

#648(评论)有帮助吗?

我的错。 这样就解决了问题。

我在Docker容器中提取CentOS映像时遇到了NVM问题。 路径不正确不是问题。 我已经遍历整个图像。 我的全局安装绝对不会在任何地方安装。 它似乎在步骤1/4解析包失败。

export PATH="$(yarn global bin):$PATH"

在Ubuntu上为我工作。

sudo yarn global add ignite-cli
为我工作

由于缺少sudo权限,我无法写入/usr/local/bin

$ yarn global add create-react-app
yarn global v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
      - create-react-app
error Cannot create "/usr/local/bin/create-react-app" due to insufficient permissions.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.

/usr/local/binPATH~/.config/yarn/global/node_modules/.bin/PATH但是yarn globalyarn create都不可用。

请尝试更新到yarn 1.22.4 @hoefling。 同样,这可能是您的设置存在的问题。 您是如何安装纱线的?

@DanielRuf感谢您的回复! 我有系统管理员安装的1.22.4

$ dnf info yarn
Yarn Repository                                                                                                                                                                    346 kB/s | 363 kB     00:01    
Installed Packages
Name         : yarn
Version      : 1.22.4
Release      : 1
Architecture : noarch
Size         : 5.1 M
Source       : yarn-1.22.4-1.src.rpm
Repository   : <strong i="8">@System</strong>
From repo    : yarn
Summary      : Fast, reliable, and secure dependency management.
URL          : https://yarnpkg.com/
License      : BSD
Description  : Fast, reliable, and secure dependency management.
...

看起来该软件包来自yarn自己的存储库。

yarn global v1.21.1

在您的上一个答复中是1.21.1。
这还会发生吗? 我建议打开一个新问题,并检查其他问题以寻求解决方案。

@DanielRuf,您是对的,我尝试设置yarn的本地副本并降级以查看是否为回归。 不幸的是,该错误也可以通过1.22.4再现。 如果我自己找不到解决方案,将打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

danez picture danez  ·  3评论

davidmaxwaterman picture davidmaxwaterman  ·  3评论

NonPolynomial picture NonPolynomial  ·  3评论

torifat picture torifat  ·  3评论

chiedo picture chiedo  ·  3评论