簡介
http-server是一個簡單的零配置命令行http服務器善茎。 它足夠強大捏肢,足以用于生產(chǎn)用途神得,但它既簡單又易于破解厘惦,可用于測試,本地開發(fā)和學習
應用場景
1哩簿、局域網(wǎng)訪問靜態(tài)頁面
訪問本地計算機中的文件都是基于file協(xié)議宵蕉,如果要開放我們的本地文件給局域網(wǎng)人員訪問,是不能使用file協(xié)議节榜。得用http協(xié)議或者ftp協(xié)議羡玛。而基于http協(xié)議的http-server就是一個不錯的選擇
2、處理頁面跨域
當頁面含有跨域的請求宗苍,此時可以利用http-server稼稿,使用命令
http-server -p 8080 -P https://abc.org
//-p 本地運行端口 -P 將所有無法在本地解析的請求代理到給定的URL進行處理
3、驗證前端頁面是否打包正常
現(xiàn)在的項目很多都前后端分離的架構讳窟,前端通常會打包dist文件丟到測試或者其他環(huán)境让歼,我們可以利用http-server來跑下打包的dist目錄內容,驗證打包的內容是否正確
安裝
安裝的前置條件
因為http-server依賴node.js,因此在安裝之前丽啡,請確保安裝的環(huán)境已經(jīng)裝有node.js谋右。可以通過命令
node -v
驗證是否已經(jīng)安裝node.js
通過npm進行安裝
npm install http-server -g
注: 如果在安裝過程中补箍,發(fā)現(xiàn)安裝太慢改执,可以先配置淘寶鏡像,再進行安裝坑雅。配置鏡像的命令如下
npm config set registry https://registry.npm.taobao.org
配置后可通過下面方式來驗證是否成功
npm config get registry
用法
http-server [path] [options]
path就是你當前運行該命令下對應的某個文件夾名稱
可用選項
- -p或--port要使用的端口(默認為8080)
- -a 要使用的地址(默認為0.0.0.0)
- -d顯示目錄列表(默認為true)
- -i顯示autoIndex(默認為true)
- -g或者--gzip當啟用(默認為false)時辈挂,它將./public/some-file.js.gz代替./public/some-file.js當文件的gzip壓縮版本存在且請求接受gzip編碼時。
- -e或者--ext如果沒有提供默認文件擴展名(默認為html)
- -s或者--silent從輸出中抑制日志消息
- --cors通過Access-Control-Allow-Origin標頭啟用CORS
- -o 啟動服務器后打開瀏覽器窗口
- -c設置緩存控制max-age標頭的緩存時間(以秒為單位)裹粤,例如-c1010秒(默認為3600)终蒂。要禁用緩存,請使用-c-1蛹尝。
- -U或--utc在日志消息中使用UTC時間格式后豫。
- -P或者將--proxy所有無法在本地解析的請求代理到給定的URL。例如:-P http://someurl.com
- -S或--ssl啟用https突那。
- -C或--certssl cert文件的路徑(默認值:) cert.pem挫酿。
- -K或--keyssl密鑰文件的路徑(默認值:) key.pem。
- -r或--robots提供/robots.txt(其內容默認為User-agent: *\nDisallow: /)
- -h或--help打印此列表并退出愕难。
示例
進入目標文件夾早龟,輸入hs或者http-server命令惫霸,不過推薦使用如下命令
http-server -c-1
只輸入http-server的話,更新了代碼后葱弟,頁面不會同步更新壹店。
總結
http-server可以做靜態(tài)資源服務器,也可以做調試芝加、測試的前端服務器硅卢。甚至可以用于實現(xiàn)前后端分離。還沒有使用過的朋友藏杖,可以嘗鮮下