const http = require('node:http');
const fs = require('node:fs');
const path = require('node:path');
const ts = require('typescript');
const root = path.resolve(__dirname, '..');
const html = `
矩形出块门验证
正在加载 Cocos 引擎
`;
http.createServer((req, res) => {
if (req.url.startsWith('/assets/')) {
http.get('http://localhost:7456'+req.url, upstream => {
res.writeHead(upstream.statusCode,upstream.headers);upstream.pipe(res);
}).on('error', e => {res.writeHead(502);res.end(e.message);});
return;
}
if (req.url === '/engine.js') {
http.get('http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js', upstream => {
res.writeHead(upstream.statusCode, {'Content-Type':'application/javascript'});
upstream.pipe(res);
}).on('error', e => {res.writeHead(502);res.end(e.message);});
return;
}
if (req.url === '/gate.js') {
const source=fs.readFileSync(path.join(root,'assets/Script/SpawnGate.ts'),'utf8');
const compiled=ts.transpileModule(source,{compilerOptions:{target:ts.ScriptTarget.ES2017,module:ts.ModuleKind.CommonJS,experimentalDecorators:true}}).outputText;
res.setHeader('Content-Type','application/javascript');
res.end('(function(){const exports={};'+compiled+';window.SpawnGate=exports.default;})();');return;
}
if (req.url.startsWith('/art/')) {
const name=path.basename(req.url);
res.setHeader('Content-Type','image/png');
res.end(fs.readFileSync(path.join(root,'assets/UI/prop/doorCreateBlock',name)));return;
}
res.setHeader('Content-Type','text/html; charset=utf-8');res.end(html);
}).listen(63367,'127.0.0.1',()=>console.log('http://127.0.0.1:63367'));