import type { ClientRequestArgs } from 'node:http'; import http from 'node:http'; import url from 'node:url'; import { blue, green } from 'picocolors'; import { optimize } from './optimizer/index'; const startDevServer = (): void => { const startTime = Date.now(); const server = http.createServer((req, res) => { const { pathname } = url.parse(`http://${req.headers.host}${req.url}`); if (pathname === '/') { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end('

Hello world

'); } else { res.writeHead(404, { 'Content-Type': 'text/html' }); res.end('

Not Found

'); } }); server.on('clientError', (err, socket) => { socket.end('HTTP/1.1 400 Bad Request\r\n\r\n'); }); server.listen(8080, async () => { const { port } = server.address() as ClientRequestArgs; // { address: '::', family: 'IPv6', port: 8080 } const root = process.cwd(); await optimize(root); console.log(green('🚀 No-Bundle 服务已经成功启动!'), `耗时: ${Date.now() - startTime}ms`); console.log(`> 本地访问路径: ${blue(`http://localhost:${port}`)}`); }); }; export { startDevServer };