产品管锥--Zoomla!逐浪CMS官方博客

http-server服务故障排除及NodeJS部署中的环境变量要点(win2016、win10下安装http-server不成功的解决方案)

作者:Q葩小玉 发布时间:2020-02-23 来源:佚名 点击数:

Q葩小玉

博主:Q葩小玉
个人座右铭:你想过普通的生活 就会遇到普通的挫折 你想过上最好的生活 就一定会遇上最强的伤害 这世界很公平 你想要最好 就一定会给你最痛~

这篇文章虽然是介绍http-server,但对于了解Nodejs逻辑有益。

什么是http-server

Http-server是一个轻量级的基于nodejs的http服务器,它最大好处就是:
可以使任意一个目录成为服务器的目录,完全抛开后台的沉重工程,直接运行想要的js代码。

项目的Npm网址:https://www.npmjs.com/package/http-server

简单的说,如果你做了一个静态网页,又不想部署IIS或apache,则你可以直接安装hppt-server服务,从而快速将当前目录作为网站运行,如下图所示:

http-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时,还是报错,如下图所示:
http-server运行不成功

这到底是什么原因呢?下面我们来讲解排查方法

第一步:选择正确的安装权限

一般说来,下载安装,并用命令行查看版本;如果提示输入命令找不到等,可能是没有安装成功,或者是环境变量引起的。

如果在提示安装不成功可能是win10权限问题,最好使用管理员模式运行powershell或cmd安装。
选择管理员权限

第二步:检查你node与npm版本

一般说来,需要部署Node和npm最新版本,相关教程你可以访问www.z01.com 官网检索。
他们的命令分别是:

node -v
npm -v

比如我的电脑当前版本,不是最新也不能是两三年前的旧版本:
检查node和npm版本

第三步:选择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安装目录到c盘nodejs目录下

再次运行npm config ls检查是否修改成功:
npm默认安装路径修改成功

在npm目录下再次安装

我们进入npm的安装目录,即C:\Program Files\nodejs\node_modules下执行npm i -g http-server,并运行http-server,会看到完全安装成功,并能成功运行:
在nodejs目录下安装并运行成功

好了,到这里,我们似乎已经安装好了http-server服务,但是在其它目录下运行,依然报错,如下图:

http-server运行不成功

这里我们想到, 一定是全局环境变量出了问题,嘿嘿,下面开始终极解决方案,定义全局变量解决问题。

nodejs全局变量解决方案

检测nodejs在windows中全局变量的有一个命令:

npm config get prefix

比如下图则输出我的nodejs系统全局变量地址在:C:\Program Files\nodejs\node_modules

既然找到问题,那么就好解决了。
打开控制面板,启动系统-高级系统设置-高级-环境变量:

定义个人环境变量

首先是在上方用户变量区,将nodejs的目录加上,如果已经有了一条内容,你可以采用半角英文的分号;来隔离,如下图示:
用户环境变量

为了避免新手迷糊,还有一种情况是用户环境变量已经有了2条或多条,则编辑时会有一个列表,这样就简单多了,你新建一条拷进去就行了:
用户环境变量中多条记录操作方法

定义系统环境变量

接下来定义系统环境变量,基本操作和个人操作无异,但如果没有path这一项时,需要新建它,并命名为NODE_PATH,如下图示:
定义系统变量中的NODE_PATH

操作完成,为了让大家学习方便,我们截一个最终的图片:
终极效果

点击确定,到了这里就结束了。

我们现在用shell进入任何目录运行看是否成功。
看,小编在D盘根目录,用PowerShell运行http-server成功跑起来了:
d盘根目录运行http-server成功

好了,下面就等着你去coding了,更便捷的http-server服务在等你,为你调试而生。

最后还有一点,如果你运行Powershell时,提示权限不够以及系统不允许执行,则以管理员权限执行下面命令就可以解决:

set-ExecutionPolicy RemoteSigned
本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友