在启动zsh时自动加载node
折腾之心不死
如果你关注本人 blog 比较久的话,你会发现界面又变了~~ 那是因为从用了许久的 octopress 迁移到 hexo 了。
其实很早就把玩过 node.js,当时用的 nvm 来安装的node
。
瞎折腾,竟是安装到了一个非推荐目录(推荐的目录是~/.nvm),导致使用 hexo 时发生了一些奇异的事:比如,重启 zsh 后执行hexo就提示 zsh: command not found: hexo
,又或是执行npm zsh: command not found: npm
nvm
如何下载使用就不多说了,本文主要讲述一下如何解决“启动zsh时自动加载node”。
如果你了解 zsh
的话,你应该知道它可以在启动时加载插件 (plugins)。
简而言之就是在 ~/.zshrc
中的 plugins=(foo)
一行,添加上你需要加载的插件。
插件目录一般是: ~/.oh-my-zsh/plugins/<foo>
插件文件名一般是:~/.oh-my-zsh/plugins/<foo>/<foo>.plugin.zsh
如 git ~/.oh-my-zsh/plugins/git/git.plugin.zsh
我们要做的就是在 ~/.oh-my-zsh/plugins
目录下添加一个自己的插件
添加插件 nvm_auto_load
到插件目录下
1 | cd ~/.oh-my-zsh/plugins/ |
创建 nvm_auto_load 目录
1 | mkdir nvm_auto_load |
将初始化 nvm 写入 nvm_auto_load.plugin.zsh
1 | if [ -z "$NVM_DIR" ]; then |
修改 ~/.zshrc
在你的原有插件配置中添加nvm_auto_load
,如 plugins=(git nvm_auto_load)
如果你的nvm 不是安装在推荐的目录 ~/.nvm
,则需要在plugins 配置行之前添加一个 NVM_DIR 的配置
1 | export NVM_DIR="/path/to/nvm" |
修改后的 .zshrc 完整示例:
1 | export ZSH=$HOME/.oh-my-zsh |
修改完记得重启zsh试试~~
添加 ~/.nvmrc
做了上述修改后你会发现 nvm 虽然会被启动时加载进来,但安装过的 node 依然不能被找到
$ nvm current
none
$ node
zsh: command not found: node
只需要在 ~/.nvmrc 中写入你需要的版本即可
1 | echo "6.3.1" > ~/.nvmrc |
在你下次启动zsh
时即可自动加载指定的版本了
$ nvm current
v6.3.1
Author: Yrom
Link: https://yrom.net/blog/2016/08/10/auto-load-node-on-zsh-startup/
License: 知识共享署名-非商业性使用 4.0 国际许可协议