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

How to display yarn globally installed packages?

我使用的是 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

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

yarn global list

命令有 issue in Spring 2017,已修复。

2017 年解决方法

目前我直接列出Yarn global packages folder内容:

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

2020 年 6 月 22 日更新

截至 2017 年 5 月 12 日,此问题已得到解决。 See issue and pull request.

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

我已经做了几天的研究,但没有找到非常有用的解决方案。 #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"
  }
}

npm 在我的机器上运行完美,但 yarn 快得多,这就是我不想回到 npm 的原因...... 希望有人可以提供更优雅的方式来实现这一目标。

yarn global list 已修复,参见 issue and pull request

我在 windows 10 中找到了我的解决方案:

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

只需将此路径添加到我的 environment variables