绝对是一个菜鸟问题,所以请不要判断,但这一直困扰着我。
不再运行$ sudo npm install -g express-generator
或$ npm install express -g
的次数,似乎所有内容都已安装,但命令$ express
仍然不存在。
我正在运行鱼壳。此外,我假设这是来自我的PATH文件的问题,但是如果那个.bash_profile或.bashrc,我就输了。
我的.bash_profile中有三行:
export PATH=/usr/local/bin:$PATH
export PATH=/Users/username/.node/lib/node_modules/express-generator/bin/express:$PATH
export PATH=/Users/username/.node/bin/express:$PATH
我的.bashrc文件中没有关于节点的内容。
快速安装时,它会返回:
/Users/username/.node/bin/express -> /Users/username/.node/lib/node_modules/express-generator/bin/express
/Users/username/.node/lib
但是当我命令which node
时,它会返回
/usr/local/bin/
当我尝试运行$ls -l /usr/local/bin/express
时,它会返回:
ls: /usr/local/bin/express: No such file or directory
无法找到安装后快速命令无法正常工作的诊断。
答案 0 :(得分:2)
如果您正在运行fish,当然会忽略.bash_profile!
将/Users/username/.node/bin/添加到fish中的$ PATH的首选方法是:
set -U fish_user_paths $fish_user_paths /Users/username/.node/bin/
这只是你在命令行运行一次的东西 - 而不是你放在启动文件中的东西。
如果您更喜欢使用启动文件,则可以修改~/.config/fish/config.fish
,如下所示:
set PATH $PATH /Users/username/.node/bin/
答案 1 :(得分:1)
安装后的符号链接中,express
二进制文件应该在/Users/username/.node/bin
目录中可用。您无法使用二进制文件的原因是因为/Users/username/.node/bin
目录不在您的$PATH
中。 $PATH
中的内容是二进制文件本身。
将目录添加到$PATH
时,可以从目录中执行二进制文件。目前,您的$PATH
指向/Users/username/.node/bin/express
,其中没有任何二进制文件。你应该纠正它:
export PATH=/Users/username/.node/bin:$PATH