问题
I am using MacOs Sierra 10.12.4 and I have installed yarn by brew install yarn
and it's version is yarn version v0.23.2
I installed angular-cli
, bower
and ionic
using yarn global add <package-name>
Then I use yarn global ls
to display globally installed packages and I am expecting to see the above installed packages but yarn gives me this:
$ yarn global ls
yarn global v0.23.2
warning No license field
✨ Done in 0.99s.
Then i check yarn global bin
and get path /Users/myusername/.config/yarn/bin
and I go to the directory and see softlinks:
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
Apparently all packages were installed and saved under /Users/myusername/.config/yarn/global/node_modules
I searched the following threads https://github.com/yarnpkg/yarn/issues/2446
Tried appending below paths but still not work:
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
Can anyone help? What should I do and how to display the globally installed packages?
回答1:
yarn global list
is currently broken, too. See the related issue.
Currently I directly list Yarn global packages folder content:
- Windows:
%LOCALAPPDATA%/Yarn/config/global
- OSX and Linux non-root:
~/.config/yarn/global
- Linux if logged in as root:
/usr/local/share/.config/yarn/global
回答2:
yarn global list
has been fixed, see issue and pull request.
回答3:
I have did some research for a couple of days but haven't get quite helpful solutions. #2224 #3142 and some other Github issues relate to this.
This is how I get the global installed packages so far:
- go to
~/.config/yarn/bin
, it shows the packages but no version tags. - go to
~/.config/yarn/global
and runcat package.json
to display the installed packages
Content:
{
"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"
}
}
To check whether the info is accurate, I run yarn global remove yo
, then yo
is gone in the ~/.config/yarn/bin
folder and then I cat package.json
again and yo has removed from the file as well.
"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
works perfectly on my machine but yarn is much faster, that's why I don't want to go back to npm...
Hope someone can provide more elegant way to achieve this.
来源:https://stackoverflow.com/questions/43501514/how-to-display-yarn-globally-installed-packages