【问题标题】: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-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

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

【问题讨论】:

    标签: yarnpkg


    【解决方案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 issuepull request

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

    【讨论】:

    • @toomuchdesign 感谢您的回复,我知道yarn global list 已被放弃。似乎检查~/.config/yarn/global 是列出全局安装包的唯一方法。再次感谢。
    • 刚刚使用了全局列表,好像没有坏掉了。
    • 刚刚使用了Global list,好像只返回Yarn版本号,windows目录现在是%LOCALAPPDATA%/Yarn/Data/global
    【解决方案2】:

    我已经进行了几天的研究,但没有得到非常有用的解决方案。 #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,你也从文件中删除了。

      "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 已修复,请参阅issuepull request

      【讨论】:

      • 自 2017 年 9 月起应该已接受此答案
      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-12
        • 1970-01-01
        • 2021-03-16
        • 2021-04-13
        • 1970-01-01
        • 2019-09-26
        • 2014-08-29
        • 2020-02-20
        相关资源
        最近更新 更多