Node.js 找不到http服务器命令
我试图运行一个基本的http服务器来测试一些html文件,但我一直遇到相同的错误 是的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 请让我知
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,然后这就成功了。谢谢!