summaryrefslogtreecommitdiff
path: root/plugins/npm
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/npm')
-rw-r--r--plugins/npm/README.md26
-rw-r--r--plugins/npm/npm.plugin.zsh49
2 files changed, 73 insertions, 2 deletions
diff --git a/plugins/npm/README.md b/plugins/npm/README.md
new file mode 100644
index 000000000..202e2b0a4
--- /dev/null
+++ b/plugins/npm/README.md
@@ -0,0 +1,26 @@
+## 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:
+```
+plugins=(... npm)
+```
+
+## Aliases
+
+| Alias | Command | Descripton |
+|:------ |:-----------------------------|:----------------------------------------------------------------|
+| `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 |
+| `npmE` | `PATH="$(npm bin)":"$PATH"` | Run command from node_modules folder based on current directory |
+| `npmO` | `npm outdated` | Check which npm modules are outdated |
+| `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 |
diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh
index 68ec5fabd..87c68f3fb 100644
--- a/plugins/npm/npm.plugin.zsh
+++ b/plugins/npm/npm.plugin.zsh
@@ -1,8 +1,22 @@
-eval "$(npm completion 2>/dev/null)"
+(( $+commands[npm] )) && {
+ 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
-# - https://twitter.com/substack/status/23122603153150361
# Thus, we've used camelCase for the following aliases:
# Install and save to dependencies in your package.json
@@ -12,3 +26,34 @@ 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 "
+
+# 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"
+
+# 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"