Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js ';快递';在mac上找不到命令_Node.js_Macos_Express_Npm_Fish - Fatal编程技术网

Node.js ';快递';在mac上找不到命令

Node.js ';快递';在mac上找不到命令,node.js,macos,express,npm,fish,Node.js,Macos,Express,Npm,Fish,这绝对是个问题,所以请不要评判,但这已经困扰了我一段时间了 不再需要运行多少次$sudo npm install-g express generator或$npm install express-g,所有内容似乎都已安装,但命令$express仍然不存在 我在跑鱼壳。另外,我假设这是来自路径文件的一个问题,但我不知道这是.bash_profile还是.bashrc 我的.bash_配置文件中有三行: export PATH=/usr/local/bin:$PATH export PATH

这绝对是个问题,所以请不要评判,但这已经困扰了我一段时间了

不再需要运行多少次
$sudo npm install-g express generator
$npm install express-g
,所有内容似乎都已安装,但命令
$express
仍然不存在

我在跑鱼壳。另外,我假设这是来自路径文件的一个问题,但我不知道这是.bash_profile还是.bashrc

我的.bash_配置文件中有三行:

  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文件中没有关于节点的内容

安装express时,它会返回:

  /Users/username/.node/bin/express -> /Users/username/.node/lib/node_modules/express-generator/bin/express
  /Users/username/.node/lib 
但是当我命令
它返回哪个节点时

/usr/local/bin/
当我尝试运行
$ls-l/usr/local/bin/express
时,它返回:

ls: /usr/local/bin/express: No such file or directory

无法找到express命令在安装后无法工作的原因诊断。

在安装后的符号链接中,
express
二进制文件应位于
/username/.node/bin
目录中。无法使用二进制文件的原因是
/Users/username/.node/bin
目录不在
$PATH
中。
$PATH
中的内容是二进制文件本身

将目录添加到
$PATH
时,可以从目录中执行二进制文件。当前,您的
$PATH
指向
/Users/username/.node/bin/express
,其中没有任何二进制文件。您应该将其更正为:

export PATH=/Users/username/.node/bin:$PATH

如果您正在运行fish,那么您的.bash_配置文件当然会被忽略

在fish中,将/Users/username/.node/bin/添加到$PATH的首选方法如下:

set -U fish_user_paths $fish_user_paths /Users/username/.node/bin/
这只是在命令行中运行一次的东西,而不是放在启动文件中的东西

如果您喜欢使用启动文件,您可以修改
~/.config/fish/config.fish
,如下所示:

set PATH $PATH /Users/username/.node/bin/

Q:
node
npm
都是从命令行工作的,对吗?问:你能用这个命令的输出更新你的帖子吗:
ls-l/usr/local/bin/express
?问:有错误信息吗?如果是这样,请将准确的文本复制/粘贴到您的帖子中。使用该命令返回的内容进行更新确定:1)问:
express generator
,以及
哪个express generator
?2) 请看这个帖子:@paulsm4我尝试了链接中的所有内容,但还没有找到解决方案。运行
$which express generator
将生成
其中:没有express generator(/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/go/bin)
请澄清您使用的shell。
echo$SHELL
输出什么?我很困惑,因为你提到了.bashrc和.bash_配置文件,如果你使用fish,它们是不相关的。我做了这两个,它们都不起作用。但是,当我
回显$PATH
时,我得到:
/usr/local/bin/Users/username/.node/bin/
/usr/sbin
/usr/local/bin/usr/bin/bin/usr/sbin/code>/sbin/opt/X11/bin
/usr/local/go/bin
/Users//myusername]/.node/bin这不是太多了吗?另外,如何从$PATH中删除
/Users/username/.node/bin/
?非常令人惊讶的是,
/Users/username/.node/bin/
将位于$PATH中,但找不到
express
。文件
/Users/username/.node/bin/express
实际存在吗?当然,用户名应该被替换为您的实际用户名。如果您通过fish_user_paths添加了path元素,您只需编写
set-e fish_user_paths[1]
即可将其删除。遵循此建议,它仍然无法正常工作。尝试命令
$echo$PATH
,它返回:
/usr/local/bin/Users/username/.node/bin/
/usr/sbin/usr/local/bin
/usr/bin
/code>/usr/sbin/code>/sbin/code>/sbin/code>/opt/X11/bin/code>/usr/local/go/bin
/Users/[myusername]/.node/bin
这不是太多了吗?您知道如何从$PATH中删除
/Users/username/.node/bin/