如何显示全局安装的yarn包?

70

我正在使用macOS Sierra 10.12.4,通过brew install yarn安装了yarn,版本是yarn version v0.23.2

我使用yarn global add <package-name>安装了angular-clibowerionic

接着我使用yarn global ls来显示全局安装的包,我期望能看到上述安装的包,但是yarn给了我以下结果:

$ yarn global ls                                                               
yarn global v0.23.2
warning No license field
✨  Done in 0.99s.

然后我检查了yarn global bin并获得了路径/Users/myusername/.config/yarn/bin,然后我进入该目录并查看软链接:

lrwxr-xr-x  1 myusername  staff    38B 19 Apr 10:17 bower -> ../global/node_modules/bower/bin/bower
lrwxr-xr-x  1 myusername  staff    42B 19 Apr 10:21 cordova -> ../global/node_modules/cordova/bin/cordova
lrwxr-xr-x  1 myusername  staff    38B 19 Apr 10:20 ionic -> ../global/node_modules/ionic/bin/ionic
lrwxr-xr-x  1 myusername  staff    41B 19 Apr 10:15 ng -> ../global/node_modules/angular-cli/bin/ng

显然所有的包都已经安装并保存在 /Users/myusername/.config/yarn/global/node_modules

我查阅了以下线程:https://github.com/yarnpkg/yarn/issues/2446

尝试添加以下路径,但仍然无效:

YARN_BIN=$HOME/.config/yarn/bin  # `yarn global bin` result
export PATH=$YARN_BIN:$PATH
export PATH=$PATH:$HOME/.config/yarn/global/node_modules/.bin

有人能帮忙吗?我该怎么做以及如何显示全局安装的包?

4个回答

96

yarn global list

这个命令在2017年春季曾经出现问题,但已经被修复。

2017年的解决方法

目前,我直接列出Yarn全局软件包文件夹中的内容:

  • Windows: %LOCALAPPDATA%/Yarn/config/global
  • OSX和Linux非root用户: ~/.config/yarn/global
  • Linux如果以root用户登录: /usr/local/share/.config/yarn/global

2020年6月22日更新

从2017年5月12日起,该问题已得到解决。请参见问题拉取请求

因此,您可以使用yarn global list来列出所有全局安装的软件包。


@toomuchdesign,感谢您的回复。我知道 yarn global list 已经被废弃了。看来检查 ~/.config/yarn/global 是列出全局安装包的唯一方法。再次感谢。 - Haifeng Zhang
2
刚刚使用了全局列表,现在看起来不再出问题了。 - giovannipds
刚刚使用了全局列表,似乎只返回了Yarn版本号,而Windows目录现在是%LOCALAPPDATA%/Yarn/Data/global - Aj Otto

15

1
这个答案应该自2017年9月起就被接受了。 - Paul Verest

3
我已经进行了几天的研究,但并没有得到很有帮助的解决方案。与此相关的有#2224#3142等一些Github问题。
目前我获取全局安装的包的方法如下:
  1. 进入~/.config/yarn/bin,它会显示包但没有版本标签。
  2. 进入~/.config/yarn/global并运行cat package.json以显示已安装的包。
{
    "dependencies": {
    "angular-cli": "^1.0.0-beta.28.3",
    "bower": "^1.8.0",
    "yo": "^1.8.5",
    "browser-sync": "^2.18.8",
    "cordova": "^6.5.0",
    "generator-jhipster": "^4.3.0",
    "ionic": "^2.2.2",
    "ts": "^0.0.0",
    "typescript": "^2.2.2"
    }
}

为了检查信息是否准确,我运行了yarn global remove yo命令,然后yo就从~/.config/yarn/bin文件夹中消失了。之后,我再次运行cat package.json命令,此时文件中的yo也已被删除。
  "dependencies": {
    "angular-cli": "^1.0.0-beta.28.3",
    "bower": "^1.8.0",
    "browser-sync": "^2.18.8",
    "cordova": "^6.5.0",
    "generator-jhipster": "^4.3.0",
    "ionic": "^2.2.2",
    "ts": "^0.0.0",
    "typescript": "^2.2.2"
  }
}
< p > npm 在我的电脑上完美运行,但是 yarn 更快,这就是为什么我不想回到 npm 的原因... 希望有人能提供更优雅的方法来实现这个。


2
我在Windows 10中找到了解决方案:

C:\Users\{YOUR_USERNAME}\node_modules\.bin

只需将此路径添加到我的环境变量


在Linux中,通常可以在以下位置找到:~/.config/yarn/global/node_modules/.bin。以防万一有人需要! - Shourya Shikhar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接