From 9d677f5d8eee4d5d7e0ba1117b99da9d161e1401 Mon Sep 17 00:00:00 2001 From: Hsiao-nan Cheung Date: Mon, 18 Mar 2019 18:37:28 +0800 Subject: [PATCH] yarn: Make `global` persist and fix global bin issue (#3206) - Yarn's global folder can be set via `yarn config set global-folder` (https://github.com/yarnpkg/yarn/pull/7056) and thus can be persisted. - ~~Since yarn's global bin creating procedure is still problematic (https://github.com/yarnpkg/yarn/issues/6902, **fixed by https://github.com/yarnpkg/yarn/pull/6954**),~~ The `.bin` folder in `global\node_modules` is a better path to add to env, and this can avoid the annoying problem when you install scoop in some place except `C:` (that the shims in global bin have wrong relative path pointer). - If you install yarn via `scoop install yarn`, the `Yarn` folder in `$env:LOCALAPPDATA` is useless, and when you uninstall `yarn`, the `.yarnrc` is unused, so the manifest add `uninstaller.script` to remove them when you uninstall. - For reconfiguration, please use `scoop update yarn -f` instead of `scoop reset yarn`. - Close #2969 --- yarn.json | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/yarn.json b/yarn.json index 33635347e7..f7a7c78e53 100644 --- a/yarn.json +++ b/yarn.json @@ -1,29 +1,28 @@ { "homepage": "https://yarnpkg.com/", - "description": "Dependency manager", - "license": "BSD-2-Clause", + "description": "Node.js dependency manager", "version": "1.15.2", - "suggest": { - "Node.js": [ - "nodejs", - "nodejs-lts" - ], - "NVM": "nvm" - }, + "license": "BSD-2-Clause", "url": "https://yarnpkg.com/downloads/1.15.2/yarn-1.15.2.msi", "hash": "e3b07031012c83367809da702db77a70a151f457b4e83e6cb4d70e9426625f67", "persist": [ "cache", - "bin", - "mirror" + "mirror", + "global" ], "post_install": [ "yarn config set cache-folder \"$dir\\cache\"", "yarn config set yarn-offline-mirror \"$dir\\mirror\"", - "yarn config set prefix \"$dir\"" + "yarn config set global-folder \"$dir\\global\"" ], + "uninstaller": { + "script": [ + "Remove-Item $env:LOCALAPPDATA\\Yarn -Recurse -Force", + "Remove-Item $env:USERPROFILE\\.yarnrc -Force" + ] + }, "env_add_path": [ - "bin", + "global\\node_modules\\.bin", "Yarn\\bin" ], "checkver": { @@ -32,5 +31,13 @@ }, "autoupdate": { "url": "https://yarnpkg.com/downloads/$version/yarn-$version.msi" + }, + "suggest": { + "Node.js": [ + "nodejs", + "nodejs-lts", + "nvm", + "nvs" + ] } }