这篇文章虽然是介绍http-server,但对于了解Nodejs逻辑有益。
什么是http-server
Http-server是一个轻量级的基于nodejs的http服务器,它最大好处就是:
可以使任意一个目录成为服务器的目录,完全抛开后台的沉重工程,直接运行想要的js代码。
项目的Npm网址:https://www.npmjs.com/package/http-server
简单的说,如果你做了一个静态网页,又不想部署IIS或apache,则你可以直接安装hppt-server
服务,从而快速将当前目录作为网站运行,如下图所示:
它有一系列参数,比如作为代理、加载SSL证书,下面附几个简单的命令:
安装
npm i -g http-server
运行
进入你的网站目录,启动powershell管理器或命令行,运行:
http-server
直接打开浏览器
如果你的目录中有index.html,想一次性直接打开浏览器,则可以运行下面命令:
http-server -o
运行结束,你可以直接关闭Powerserver或命令行窗口,或者执行ctrl+c
结束即可。
下图就是安装成功的界面:
安装出错的解决方法
有网友反馈,虽然执行了上面的npm i -g http-server
,但是依然跑不出http-server,这种情况一般出现在早期的windows server 2016、win10早期版本上。
那要如何解决?
虽然总是提示安装成功,运行出了前面的安装成功界面,但再运行http-server
时,还是报错,如下图所示:
这到底是什么原因呢?下面我们来讲解排查方法
第一步:选择正确的安装权限
一般说来,下载安装,并用命令行查看版本;如果提示输入命令找不到等,可能是没有安装成功,或者是环境变量引起的。
如果在提示安装不成功可能是win10权限问题,最好使用管理员模式运行powershell或cmd安装。
第二步:检查你node与npm版本
一般说来,需要部署Node和npm最新版本,相关教程你可以访问www.z01.com 官网检索。
他们的命令分别是:
``
node -v
npm -v
比如我的电脑当前版本,不是最新也不能是两三年前的旧版本:
![检查node和npm版本](http://www.z01.com/UploadFiles/Anony/content/md/EImz4Z4ukW.jpg)
### 第三步:选择npm的安装路径
好多电脑的npm安装路径不是在nodejs的目录下,造成安装路径不同,运行命令是:
npm config ls
``
运行后界面如下提示:
上图即告诉我们npm是安装在E盘。
我们最好将其修改为默认安装在nodejs目录下,方便查找和管理包,命令:
npm config set prefix "C:\Program Files\nodejs\node_modules"
npm config set cache "C:\Program Files\nodejs\node_modules"
再次运行npm config ls
检查是否修改成功:
在npm目录下再次安装
我们进入npm的安装目录,即C:\Program Files\nodejs\node_modules
下执行npm i -g http-server
,并运行http-server
,会看到完全安装成功,并能成功运行:
好了,到这里,我们似乎已经安装好了http-server服务,但是在其它目录下运行,依然报错,如下图:
这里我们想到, 一定是全局环境变量出了问题,嘿嘿,下面开始终极解决方案,定义全局变量解决问题。
nodejs全局变量解决方案
检测nodejs在windows中全局变量的有一个命令:
npm config get prefix
比如下图则输出我的nodejs系统全局变量地址在:C:\Program Files\nodejs\node_modules
既然找到问题,那么就好解决了。
打开控制面板,启动系统-高级系统设置-高级-环境变量:
定义个人环境变量
首先是在上方用户变量区,将nodejs的目录加上,如果已经有了一条内容,你可以采用半角英文的分号;
来隔离,如下图示:
为了避免新手迷糊,还有一种情况是用户环境变量已经有了2条或多条,则编辑时会有一个列表,这样就简单多了,你新建一条拷进去就行了:
定义系统环境变量
接下来定义系统环境变量,基本操作和个人操作无异,但如果没有path这一项时,需要新建它,并命名为NODE_PATH,如下图示:
操作完成,为了让大家学习方便,我们截一个最终的图片:
点击确定,到了这里就结束了。
我们现在用shell进入任何目录运行看是否成功。
看,小编在D盘根目录,用PowerShell运行http-server
成功跑起来了:
好了,下面就等着你去codding了,更便捷的http-server服务在等你,为你调试而生。