feat: clarify proxy and add LAN access toggle

This commit is contained in:
kuekhaoyang
2026-07-08 23:28:25 +08:00
parent 0f39d65b75
commit 787680468b
11 changed files with 295 additions and 38 deletions
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env node
import { spawn } from 'node:child_process';
const mode = process.argv[2];
const forwardedArgs = process.argv.slice(3);
const validModes = new Set(['dev', 'start']);
if (!validModes.has(mode)) {
console.error('Usage: node scripts/next-with-lan-access.mjs <dev|start> [next args...]');
process.exit(1);
}
function isTruthyEnv(value) {
if (!value) {
return false;
}
return ['1', 'true', 'yes', 'y', 'on', 'enabled', 'enable'].includes(
value.trim().toLowerCase()
);
}
const lanAccessEnabled = isTruthyEnv(
process.env.ALLOW_LAN_ACCESS ?? process.env.NEXT_PUBLIC_ALLOW_LAN_ACCESS
);
const hostname = process.env.HOSTNAME || process.env.NEXT_HOSTNAME || (lanAccessEnabled ? '0.0.0.0' : 'localhost');
const args = [mode, '--port', process.env.PORT || '3000'];
if (hostname) {
args.push('--hostname', hostname);
}
args.push(...forwardedArgs);
const child = spawn('next', args, {
stdio: 'inherit',
shell: process.platform === 'win32',
});
child.on('exit', (code, signal) => {
if (signal) {
process.kill(process.pid, signal);
return;
}
process.exit(code ?? 0);
});