Node.js 找不到http服务器命令

Node.js 找不到http服务器命令,node.js,httpserver,Node.js,Httpserver,我试图运行一个基本的http服务器来测试一些html文件,但我一直遇到相同的错误 是的 sudonpm安装-ghttp服务器很多次了,但每次我尝试 simple git:(master) http-server 我不断地发现这个错误: zsh:未找到命令:http服务器 我尝试过其他变体,如http server/8000,我尝试过使用不同的命令语法,但似乎没有任何效果 我的npm版本是5.5.1,我的节点版本是8.3.0,我的操作系统是Mac OSX Sierra v10.12.6 请让我知

我试图运行一个基本的http服务器来测试一些html文件,但我一直遇到相同的错误

是的
sudonpm安装-ghttp服务器
很多次了,但每次我尝试

simple git:(master) http-server
我不断地发现这个错误:

zsh:未找到命令:http服务器

我尝试过其他变体,如http server/8000,我尝试过使用不同的命令语法,但似乎没有任何效果

我的npm版本是5.5.1,我的节点版本是8.3.0,我的操作系统是Mac OSX Sierra v10.12.6

请让我知道你是否能帮忙,或者如果你看到我做错了什么,我只是没有注意到

编辑:微小的更新我可以让一个服务器运行python,但我真的想知道为什么这不起作用


编辑2:问题解决了,谢谢

您的npm二进制文件可能不在
路径中

通过运行
echo$path
,确保您的npm二进制文件位于path中。您应该看到,在打印输出的某个地方,类似于:

/home/bob/.npm-packages/bin:/usr/lobal/bin:/other/paths/that/contain/bins
/home/bob/.npm packages/bin
是每当我运行
npm-g install which
时安装npm二进制文件的目录

npm install http-server -g.
如果您没有看到类似的内容,请阅读下面的内容,确保您的环境设置正确。选项2明确地谈到了修复路径

我通常做的另一件方便的事情是将所有这些添加到我的
.bashrc
.bashprofile
中,它位于您的主目录中:

  • 在macOS上
    /Users/username/
  • 在*nix:
    /home/username/
.bashrc

NPM_PACKAGES="${HOME}/.npm-packages"
PATH="$NPM_PACKAGES/bin:$PATH"
但是,由于看起来您使用的是zshell,因此必须使用它们对rc文件遵循的任何约定


您可以修复这个问题,或者,您可以在项目的包级别安装http服务器,然后通过npm命令启动它

运行
npm安装--保存dev http服务器

并放入您的package.json:

{
    "scripts": {
        "start": "http-server ."
    }
}
然后跑

npm start

如果您安装了
sudo npm install-g
,并且没有
npm
前缀集,则该文件可能安装在
/usr/local/bin
中,但它可以或多或少安装在任何地方。无论安装到哪个目录,它都可能不在您的
$PATH
中,因此您应该找出它的安装位置,然后更新
$PATH
以包含它

我强烈建议您避免使用npm运行
sudo
。相反,您可以在npm配置中更新
前缀
(或者在
~/.npmrc
中手动更新为
前缀=~/.npm
之类的内容,但这取决于您自己。然后您还必须确保
~/.npm/bin
在您的路径中

尽管全局软件包有时很方便,但如果它们与特定项目相关联,我认为最好将其作为项目的一部分安装并在那里运行:

cd /path/to/project/with/http-server
npm install http-server

# any of:
npx http-server
node_modules/.bin/http-server
另外,如果您有一个
包.json#脚本
,您可以引用任何本地安装的二进制文件,如中所示:

"scripts": {
  "server": "http-server"
}
然后使用
npm运行服务器

npm install http-server -g.
请在全局范围内安装http服务器,然后才能运行该命令

http-server -o

如果您在这里是因为您想在本地测试您的Angular PWA项目,那么您需要使用
npm install--global http server
全局安装http服务器包,然后只有您可以运行
http服务器

,您还可以使用
i
而不是
install
-D
而不是
-保存开发人员
>如果你不讨厌你的手指。我只是检查了一下,我没有看到,我该如何解决这个问题?@Kirk true dat。但我通常在回答中用命令开关来避免不可避免的问题:“I”代表什么?”@jordanfordes真棒,如果这解决了所有问题,别忘了接受答案。
PATH=“$(npm bin-g):$PATH”如果您的npm bin绑定到某个版本,例如
/usr/local/cillar/node/11.1.0/bin
,则可以使用
sudo npm install http server-g
。我必须使用
sudo npm install http server-g,然后这就成功了。谢谢!