#!/usr/bin/env node import { resolve } from 'path' import parseArgs from 'minimist' import Server from '../server' import { existsSync } from 'fs' const argv = parseArgs(process.argv.slice(2), { alias: { h: 'help', p: 'port' }, boolean: ['h'], default: { p: 3000 } }) if (argv.help) { console.log(` Description Starts the application in production mode. The application should be compiled with \`next build\` first. Usage $ next start -p is the directory that contains the compiled .next folder created by running \`next build\`. If no directory is provided, the current directory will be assumed. Options --port, -p A port number on which to start the application --help, -p Displays this message `) process.exit(0) } const dir = resolve(argv._[0] || '.') const srv = new Server({ dir }) if (!existsSync(resolve(dir, '.next'))) { console.error(`> Could not find the '.next' directory! Try building your app with 'next build' before starting the server.`) process.exit(1) } srv.start(argv.port) .then(() => { if (!process.env.NOW) { console.log(`> Ready on http://localhost:${argv.port}`) } }) .catch((err) => { console.error(err) process.exit(1) })