如何显示纱线全局安装的包?
Posted
技术标签:
【中文标题】如何显示纱线全局安装的包?【英文标题】:How to display yarn globally installed packages? 【发布时间】:2017-09-16 00:35:29 【问题描述】:我使用的是 macOS Sierra 10.12.4,我已经安装了 brew install yarn
的 yarn,它的版本是 yarn version v0.23.2
我使用yarn global add <package-name>
安装了angular-cli
、bower
和ionic
然后我使用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
有人可以帮忙吗?我应该怎么做以及如何显示全局安装的包?
【问题讨论】:
【参考方案1】:yarn global list
该命令有issue in Spring 2017,已修复。
2017 解决方法
目前我直接列出Yarn global packages folder内容:
窗口:%LOCALAPPDATA%/Yarn/config/global
OSX 和 Linux 非 root:~/.config/yarn/global
Linux 如果以 root 身份登录:/usr/local/share/.config/yarn/global
2020 年 6 月 22 日更新
截至 2017 年 5 月 12 日,此问题已得到解决。 See issue 和 pull request。
所以你可以使用yarn global list
列出所有全局安装的包。
【讨论】:
@toomuchdesign 感谢您的回复,我知道yarn global list
已被放弃。似乎检查~/.config/yarn/global
是列出全局安装包的唯一方法。再次感谢。
刚刚使用了全局列表,好像没有坏掉了。
刚刚使用了Global list,好像只返回Yarn版本号,windows目录现在是%LOCALAPPDATA%/Yarn/Data/global
【参考方案2】:
我已经进行了几天的研究,但没有得到非常有用的解决方案。 #2224#3142 和其他一些与此有关的 Github 问题。
这是我目前获得全局安装包的方式:
-
转到
~/.config/yarn/bin
,它显示包但没有版本标签。
转到~/.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
,你也从文件中删除了。
"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"
npm
在我的机器上完美运行,但 yarn 更快,这就是为什么我不想回到 npm...
希望有人可以提供更优雅的方式来实现这一目标。
【讨论】:
【参考方案3】:yarn global list
已修复,请参阅issue 和pull request。
【讨论】:
自 2017 年 9 月起应该已接受此答案【参考方案4】:我在 Windows 10 中找到了我的解决方案:
C:\Users\YOUR_USERNAME\node_modules\.bin
只需将此路径添加到我的environment variables
【讨论】:
以上是关于如何显示纱线全局安装的包?的主要内容,如果未能解决你的问题,请参考以下文章