简单来说,是我使用 tnpm install -g webpack
或者任何使用 -g 来安装的全局 npm 包都报错: zsh: command not found
,
想到了肯定是环境变量引起的,zsh 找不到全局包安装的位置。
zsh 的配置文件在 ~/.zshrc
文件中,里面已经有被配置了的环境变量如:
1 | export $PATH = /usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin |
发现问题后,找到了 npm -g 安装的全部目录为(…为自己的目录) /usr/local/bin/node/.../bin
下, 添加到 $PATH 后面即可。
每个 : 代表的是多个环境变量的分割。
过程中做了一件特别傻的事情,没有把 npm 的目录直接在原来的 export 后面加,而是直接新建了一行,大概是下面这样:
1 | export PATH = /usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin |
这样会导致最后的环境变量是后面一项,前面被覆盖了。导致一些最基本的命令,如 cat/vi/vim 都不能使用了。哈哈,连vi都不能用了,我知道错了,怎么改回来?
直接在命令行中export PATH=/bin:/usr/bin:/usr/local/bin
, 然后再去 vi ~/.zshrc 更改就好了。
zshrc 是 zsh 的配置文件,如果你不是用的 zsh, 而是 bash 或者 shell , 配置文件就不是这个了,有可能是 .bash_profile 之类的。
记得每次 modify …rc 文件后都 source 下哦, 要不不会生效。
上面或者直接使用:1
2export PATH = /usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATH = $PATH:/usr/local/bin/node/.../bin
即在路径前或路径后添加 $PATH
变量,也可。