今天我们来用 JavaScript 做个简单的静态网页服务器吧!
疑?昨天不是说过了?
没错,但今天我们要把它做成「可执行档」!
不知道你们有没有遇过刚开始写网页的朋友(用记事本写的那种),说他写好了一个网页,想架个服务器跑跑看。
然後他刚好是那种电脑没有环境又三分钟热度的人。
感觉让他装个 Node.js、Python 或 Apache 之类的很麻烦,他以後也用不到。而且他又不想把 Source Code 放到网路上。
这时候,如果有个程序丢给他,让他点下去就可以架好他写的静态网页的话真是太好了!
所以,这个不用设定的 Click! Serve! 就出现了。
因为这个需求真的是蛮简单的,只有静态档案,所以就直接请 Koa + Koa Static 出来吧!
const path = require("path");
const Koa = require("koa");
const app = new Koa();
app.use(async (ctx, next) => {
console.log(`Process ${ctx.request.method} ${ctx.request.url} from ${ctx.request.ip}`);
await next();
});
app.use(require("koa-static")("www"));
app.listen(80);
console.log("Server started at port 80");
console.log(`Serving static files from ${path.join(process.cwd(), "www")}`);
console.log("Visit http://localhost:80/ to see your website.");
我们希望当使用者点下程序後,它就会把身旁的 www 资料夹内的东西当作要 serve 的档案。
这样程序就写好了,超快的!
pkg 就是能将 Node.js 程序从专案资料夹变成可执行档的工具啦!
它其实就是把稍微修改过的 Node.js 核心跟你的程序包在一起,然後转成 bytecode。
我们先装好 pkg:
npm i -D pkg
然後在 package.json 中新增一个 script:
"scripts": {
"build": "pkg index.js"
},
接着,让 npm 去跑上面的那个 script:
npm run build
然後就等 pkg 做事吧!
pkg 预设会产生 Linux、Windows 跟 MacOS 三个平台的可执行档。
接着就可以简单写个 HTML JS CSS 然後把它们丢到 www 中跟刚刚产生的可执行档放到同个资料夹内:
接着点下去那个可执行档! 然後去 localhost!
就完成了可携式静态服务器了。
接下来我们让它可以有些设定好了,因为我不想把每个资料夹都改叫 www 才能用。
以 10/07 20:00 ~ 10/08 20:00 文章观看数增加值排名
+145
[面试][白板题]设计一个简易的抽奖程序
+124
Day 23 - Keyboard Row
+120
如何在 Angular 建立 Breadcrumb (面包屑)
+119
[Python 爬虫这样学,一定是大拇指拉!] DAY23 - 实战演练:抓取股票代码清单 (2)
+114
Day23 Let's ODOO: Currency
+113
D28 - 用 Swift 和公开资讯,打造投资理财的 Apps { 三大法人成交比重实作.3 }
+111
Proxmox VE 客体机线上迁移
+111
Android学习笔记29
+110
Day 01 「科学 v.s. 数学」前言
+107
DAY24神经网路(续二)
<<: Day 23. 透过 Constraints 机制,实作出能够拉伸的响应式卡片设计
>>: # Day 29 Page Migration (四)
0. 进度条 模型 进度 VGG Net 完成 ResNet 完成 DensNet 完成 Mobil...
前端工程师说,我去交友网站找女朋友去了。 朋友问:找到了麽? 工程师说:找到了他们页面的一个 bu...
谈这个主题之前,我们先来回忆一下日常的场景,你来到桃子购物网站,选了你要的商品往下卷动网页,结果竟...
今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标:...
今天要来介绍TypeScript(TS)的介面型别(Interface) 首先了解TS的核心原则之一...