问题描述
npm全局安装serve。
npm i -g serve
显示安装成功,运行 serve -s build,报错 zsh: command not found: serve。
运行 which serve,显示 serve not found,找不到serve命令。
which serve
运行 which npm,找出npm
命令本身的位置 /usr/local/bin/npm。
which npm
运行 npm config get prefix,查看
配置npm全局包的安装位置为 /usr/local/Cellar/node/22.3.0/lib。
npm config get prefix
运行 npm list -g 命令列出所有全局安装的npm包及其依赖,显示serve 14.2.3已经成功安装。
npm list -g /usr/local/Cellar/node/22.3.0/lib
├── bin@
├── lib@
├── npm@10.8.2
├── serve@14.2.3
└── share@
serve
命令确实存在于/usr/local/Cellar/node/22.3.0/bin
目录中,但是使用which serve
命令时仍然找不到它,这个目录可能没有被正确地添加到PATH
环境变量中。
运行echo $PATH
来查看当前的PATH,能够看到运行 npm config get prefix 得到路径不在PATH环境变量中。
echo $PATH
所以根本原因是,serve
安装在了一个不在PATH
中的目录,我们要手动将其添加到PATH
。
解决方法
1. 使用文本编辑器打开 ~/.zshrc
文件,例如使用nano
或vi
。
nano ~/.zshrc
2. 修改配置文件以添加路径,使用箭头键移动光标到文件的底部,在文件的末尾添加以下行。
export PATH="/usr/local/Cellar/node/22.3.0/bin:$PATH"
这条命令的作用是将/usr/local/Cellar/node/22.3.0/bin添加到现有的PATH环境变量之前,确保系统首先在这个目录中查找命令。
3. 保存并退出nano:
- 按下Ctrl + O(字母O,不是数字0)保存文件。
- 按下Enter确认文件名。
- 按下Ctrl + X退出nano。
4. 使更改生效。
source ~/.zshrc
5. 查看更改配置文件是否更改成功。
cat ~/.zshrc
6. 验证更改,确认输出中包含了/usr/local/Cellar/node/22.3.0/bin路径。
echo $PATH
此时,再次运行 which serve 就能查询到 /usr/local/Cellar/node/22.3.0/bin/serve 了。