這篇文章雖然是介紹http-server,但對(duì)于了解Nodejs邏輯有益付鹿。
什么是http-server
Http-server是一個(gè)輕量級(jí)的基于nodejs的http服務(wù)器物蝙,它最大好處就是:
可以使任意一個(gè)目錄成為服務(wù)器的目錄炎滞,完全拋開后臺(tái)的沉重工程,直接運(yùn)行想要的js代碼诬乞。
項(xiàng)目的Npm網(wǎng)址:https://www.npmjs.com/package/http-server
簡單的說册赛,如果你做了一個(gè)靜態(tài)網(wǎng)頁,又不想部署IIS或apache震嫉,則你可以直接安裝hppt-server
服務(wù)森瘪,從而快速將當(dāng)前目錄作為網(wǎng)站運(yùn)行,如下圖所示:
它有一系列參數(shù)票堵,比如作為代理扼睬、加載SSL證書,下面附幾個(gè)簡單的命令:
安裝
npm i -g http-server
運(yùn)行
進(jìn)入你的網(wǎng)站目錄悴势,啟動(dòng)powershell管理器或命令行窗宇,運(yùn)行:
http-server
直接打開瀏覽器
如果你的目錄中有index.html,想一次性直接打開瀏覽器特纤,則可以運(yùn)行下面命令:
http-server -o
運(yùn)行結(jié)束军俊,你可以直接關(guān)閉Powerserver或命令行窗口,或者執(zhí)行ctrl+c
結(jié)束即可捧存。
下圖就是安裝成功的界面:
安裝出錯(cuò)的解決方法
有網(wǎng)友反饋粪躬,雖然執(zhí)行了上面的npm i -g http-server
,但是依然跑不出http-server昔穴,這種情況一般出現(xiàn)在早期的windows server 2016短蜕、win10早期版本上。
那要如何解決傻咖?
雖然總是提示安裝成功朋魔,運(yùn)行出了前面的安裝成功界面,但再運(yùn)行http-server
時(shí)卿操,還是報(bào)錯(cuò)警检,如下圖所示:
這到底是什么原因呢?下面我們來講解排查方法
第一步:選擇正確的安裝權(quán)限
一般說來害淤,下載安裝扇雕,并用命令行查看版本;如果提示輸入命令找不到等窥摄,可能是沒有安裝成功镶奉,或者是環(huán)境變量引起的。
如果在提示安裝不成功可能是win10權(quán)限問題,最好使用管理員模式運(yùn)行powershell或cmd安裝哨苛。
第二步:檢查你node與npm版本
一般說來鸽凶,需要部署Node和npm最新版本,相關(guān)教程你可以訪問www.z01.com 官網(wǎng)檢索建峭。
他們的命令分別是:
``
node -v
npm -v
比如我的電腦當(dāng)前版本玻侥,不是最新也不能是兩三年前的舊版本:
![檢查node和npm版本](http://www.z01.com/UploadFiles/Anony/content/md/EImz4Z4ukW.jpg)
### 第三步:選擇npm的安裝路徑
好多電腦的npm安裝路徑不是在nodejs的目錄下,造成安裝路徑不同亿蒸,運(yùn)行命令是:
npm config ls
``
運(yùn)行后界面如下提示:
上圖即告訴我們npm是安裝在E盤凑兰。
我們最好將其修改為默認(rèn)安裝在nodejs目錄下,方便查找和管理包边锁,命令:
npm config set prefix "C:\Program Files\nodejs\node_modules"
npm config set cache "C:\Program Files\nodejs\node_modules"
再次運(yùn)行npm config ls
檢查是否修改成功:
在npm目錄下再次安裝
我們進(jìn)入npm的安裝目錄姑食,即C:\Program Files\nodejs\node_modules
下執(zhí)行npm i -g http-server
,并運(yùn)行http-server
茅坛,會(huì)看到完全安裝成功矢门,并能成功運(yùn)行:
好了,到這里灰蛙,我們似乎已經(jīng)安裝好了http-server服務(wù),但是在其它目錄下運(yùn)行隔躲,依然報(bào)錯(cuò)摩梧,如下圖:
這里我們想到, 一定是全局環(huán)境變量出了問題宣旱,嘿嘿仅父,下面開始終極解決方案,定義全局變量解決問題浑吟。
nodejs全局變量解決方案
檢測(cè)nodejs在windows中全局變量的有一個(gè)命令:
npm config get prefix
比如下圖則輸出我的nodejs系統(tǒng)全局變量地址在:C:\Program Files\nodejs\node_modules
既然找到問題笙纤,那么就好解決了。
打開控制面板组力,啟動(dòng)系統(tǒng)-高級(jí)系統(tǒng)設(shè)置-高級(jí)-環(huán)境變量:
定義個(gè)人環(huán)境變量
首先是在上方用戶變量區(qū)省容,將nodejs的目錄加上,如果已經(jīng)有了一條內(nèi)容燎字,你可以采用半角英文的分號(hào);
來隔離腥椒,如下圖示:
為了避免新手迷糊,還有一種情況是用戶環(huán)境變量已經(jīng)有了2條或多條候衍,則編輯時(shí)會(huì)有一個(gè)列表笼蛛,這樣就簡單多了,你新建一條拷進(jìn)去就行了:
定義系統(tǒng)環(huán)境變量
接下來定義系統(tǒng)環(huán)境變量蛉鹿,基本操作和個(gè)人操作無異滨砍,但如果沒有path這一項(xiàng)時(shí),需要新建它,并命名為NODE_PATH惋戏,如下圖示:
操作完成领追,為了讓大家學(xué)習(xí)方便,我們截一個(gè)最終的圖片:
點(diǎn)擊確定日川,到了這里就結(jié)束了蔓腐。
我們現(xiàn)在用shell進(jìn)入任何目錄運(yùn)行看是否成功。
看龄句,小編在D盤根目錄回论,用PowerShell運(yùn)行http-server
成功跑起來了:
好了,下面就等著你去codding了分歇,更便捷的http-server服務(wù)在等你傀蓉,為你調(diào)試而生。