浏览代码

feat(yarn): add setting to disable adding global dir to `$PATH` (#10642)

Carlo Sala 2 年之前
父节点
当前提交
d9c58d5fa1
共有 2 个文件被更改,包括 19 次插入8 次删除
  1. 9 0
      plugins/yarn/README.md
  2. 10 8
      plugins/yarn/yarn.plugin.zsh

+ 9 - 0
plugins/yarn/README.md

@@ -9,6 +9,15 @@ To use it, add `yarn` to the plugins array in your zshrc file:
 plugins=(... yarn)
 ```
 
+## Global scripts directory
+
+It also adds `yarn` global scripts dir (commonly `~/.yarn/bin`) to the `$PATH`.
+To disable this feature, set the following style in your `.zshrc`:
+
+```zsh
+zstyle ':omz:plugins:yarn' global-path false
+```
+
 ## Aliases
 
 | Alias | Command                                   | Description                                                                   |

+ 10 - 8
plugins/yarn/yarn.plugin.zsh

@@ -1,12 +1,14 @@
-# Skip yarn call if default global bin dir exists
-[[ -d "$HOME/.yarn/bin" ]] && bindir="$HOME/.yarn/bin" || bindir="$(yarn global bin 2>/dev/null)"
+if zstyle -T ':omz:plugins:yarn' global-path; then
+  # Skip yarn call if default global bin dir exists
+  [[ -d "$HOME/.yarn/bin" ]] && bindir="$HOME/.yarn/bin" || bindir="$(yarn global bin 2>/dev/null)"
 
-# Add yarn bin directory to $PATH if it exists and not already in $PATH
-[[ $? -eq 0 ]] \
-  && [[ -d "$bindir" ]] \
-  && (( ! ${path[(Ie)$bindir]} )) \
-  && path+=("$bindir")
-unset bindir
+  # Add yarn bin directory to $PATH if it exists and not already in $PATH
+  [[ $? -eq 0 ]] \
+    && [[ -d "$bindir" ]] \
+    && (( ! ${path[(Ie)$bindir]} )) \
+    && path+=("$bindir")
+  unset bindir
+fi
 
 alias y="yarn"
 alias ya="yarn add"