diff --git a/dev.js b/dev.js new file mode 100644 index 0000000..70ea051 --- /dev/null +++ b/dev.js @@ -0,0 +1,37 @@ +import localtunnel from 'localtunnel'; +import { spawn } from 'child_process'; + +let tunnel; +let nextDev; + +async function startDev() { + // Start localtunnel and get URL + tunnel = await localtunnel({ port: 3000 }); + console.log(`\n🌐 Local tunnel URL: ${tunnel.url}`); + + // Start next dev with the tunnel URL as an environment variable + nextDev = spawn('next', ['dev'], { + stdio: 'inherit', + env: { ...process.env, NEXT_PUBLIC_URL: tunnel.url } + }); + + // Handle cleanup + const cleanup = () => { + if (tunnel) { + tunnel.close(); + console.log('\n🌐 Tunnel closed'); + } + if (nextDev) { + nextDev.kill(); + console.log('\nšŸ›‘ Next.js dev server stopped'); + } + process.exit(0); + }; + + // Handle process termination + process.on('SIGINT', cleanup); + process.on('SIGTERM', cleanup); + tunnel.on('close', cleanup); +} + +startDev().catch(console.error); \ No newline at end of file diff --git a/package.json b/package.json index 7a15dc3..1b8568d 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "web3" ], "scripts": { - "dev": "lt --port 3000 & next dev", + "localtunnel": "node localtunnel.js", + "dev": "node dev.js", "build": "next build", "start": "next start", "lint": "next lint"