diff options
Diffstat (limited to 'oh-my-zsh/plugins/npm')
| -rw-r--r-- | oh-my-zsh/plugins/npm/README.md | 48 | ||||
| -rw-r--r-- | oh-my-zsh/plugins/npm/npm.plugin.zsh | 111 | 
2 files changed, 159 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/npm/README.md b/oh-my-zsh/plugins/npm/README.md new file mode 100644 index 0000000..8eafc6d --- /dev/null +++ b/oh-my-zsh/plugins/npm/README.md @@ -0,0 +1,48 @@ +# npm plugin + +The npm plugin provides completion as well as adding many useful aliases. + +To use it, add npm to the plugins array of your zshrc file: + +```zsh +plugins=(... npm) +``` + +## Aliases + +| Alias   | Command                      | Description                                                     | +|:------  |:-----------------------------|:----------------------------------------------------------------| +| `npmg`  | `npm i -g`                   | Install dependencies globally                                   | +| `npmS`  | `npm i -S`                   | Install and save to dependencies in your package.json           | +| `npmD`  | `npm i -D`                   | Install and save to dev-dependencies in your package.json       | +| `npmF`  | `npm i -f`                   | Force install from remote registries ignoring local cache       | +| `npmE`  | `PATH="$(npm bin)":"$PATH"`  | Run command from node_modules folder based on current directory | +| `npmO`  | `npm outdated`               | Check which npm modules are outdated                            | +| `npmU`  | `npm update`                 | Update all the packages listed to the latest version            | +| `npmV`  | `npm -v`                     | Check package versions                                          | +| `npmL`  | `npm list`                   | List installed packages                                         | +| `npmL0` | `npm ls --depth=0`           | List top-level installed packages                               | +| `npmst` | `npm start`                  | Run npm start                                                   | +| `npmt`  | `npm test`                   | Run npm test                                                    | +| `npmR`  | `npm run`                    | Run npm scripts                                                 | +| `npmP`  | `npm publish`                | Run npm publish                                                 | +| `npmI`  | `npm init`                   | Run npm init                                                    | +| `npmi`  | `npm info`                   | Run npm info                                                    | +| `npmSe` | `npm search`                 | Run npm search                                                  | + +## `npm install` / `npm uninstall` toggle + +The plugin adds a function that toggles between `npm install` and `npm uninstall` in +the current command or the last command, for up to 2 previous commands. **The default +key binding is pressing <kbd>F2</kbd> twice**. + +You can change this key binding by adding the following line to your zshrc file: + +```zsh +bindkey -M emacs '<seq>' npm_toggle_install_uninstall +bindkey -M vicmd '<seq>' npm_toggle_install_uninstall +bindkey -M viins '<seq>' npm_toggle_install_uninstall +``` + +where `<seq>` is a key sequence obtained by running `cat` and pressing the keyboard +sequence you want. diff --git a/oh-my-zsh/plugins/npm/npm.plugin.zsh b/oh-my-zsh/plugins/npm/npm.plugin.zsh new file mode 100644 index 0000000..e0dcbf1 --- /dev/null +++ b/oh-my-zsh/plugins/npm/npm.plugin.zsh @@ -0,0 +1,111 @@ +(( $+commands[npm] )) && { +  command rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion" + +  _npm_completion() { +    local si=$IFS +    compadd -- $(COMP_CWORD=$((CURRENT-1)) \ +                 COMP_LINE=$BUFFER \ +                 COMP_POINT=0 \ +                 npm completion -- "${words[@]}" \ +                 2>/dev/null) +    IFS=$si +  } +  compdef _npm_completion npm +} + +# Install dependencies globally +alias npmg="npm i -g " + +# npm package names are lowercase +# Thus, we've used camelCase for the following aliases: + +# Install and save to dependencies in your package.json +# npms is used by https://www.npmjs.com/package/npms +alias npmS="npm i -S " + +# Install and save to dev-dependencies in your package.json +# npmd is used by https://github.com/dominictarr/npmd +alias npmD="npm i -D " + +# Force npm to fetch remote resources even if a local copy exists on disk. +alias npmF='npm i -f' + +# Execute command from node_modules folder based on current directory +# i.e npmE gulp +alias npmE='PATH="$(npm bin)":"$PATH"' + +# Check which npm modules are outdated +alias npmO="npm outdated" + +# Update all the packages listed to the latest version +alias npmU="npm update" + +# Check package versions +alias npmV="npm -v" + +# List packages +alias npmL="npm list" + +# List top-level installed packages +alias npmL0="npm ls --depth=0" + +# Run npm start +alias npmst="npm start" + +# Run npm test +alias npmt="npm test" + +# Run npm scripts +alias npmR="npm run" + +# Run npm publish  +alias npmP="npm publish" + +# Run npm init +alias npmI="npm init" + +# Run npm info +alias npmi="npm info" + +# Run npm search +alias npmSe="npm search" + +npm_toggle_install_uninstall() { +  # Look up to the previous 2 history commands +  local line +  for line in "$BUFFER" \ +    "${history[$((HISTCMD-1))]}" \ +    "${history[$((HISTCMD-2))]}" +  do +    case "$line" in +      "npm uninstall"*) +        BUFFER="${line/npm uninstall/npm install}" +        (( CURSOR = CURSOR + 2 )) # uninstall -> install: 2 chars removed +        ;; +      "npm install"*) +        BUFFER="${line/npm install/npm uninstall}" +        (( CURSOR = CURSOR + 2 )) # install -> uninstall: 2 chars added +        ;; +      "npm un "*) +        BUFFER="${line/npm un/npm install}" +        (( CURSOR = CURSOR + 5 )) # un -> install: 5 chars added +        ;; +      "npm i "*) +        BUFFER="${line/npm i/npm uninstall}" +        (( CURSOR = CURSOR + 8 )) # i -> uninstall: 8 chars added +        ;; +      *) continue ;; +    esac +    return 0 +  done + +  BUFFER="npm install" +  CURSOR=${#BUFFER} +} + +zle -N npm_toggle_install_uninstall + +# Defined shortcut keys: [F2] [F2] +bindkey -M emacs '^[OQ^[OQ' npm_toggle_install_uninstall +bindkey -M vicmd '^[OQ^[OQ' npm_toggle_install_uninstall +bindkey -M viins '^[OQ^[OQ' npm_toggle_install_uninstall  | 
