#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("../server/require-hook"); const _commander = require("next/dist/compiled/commander"); const _log = require("../build/output/log"); const _semver = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/semver")); const _picocolors = require("../lib/picocolors"); const _formatclihelpoutput = require("../lib/format-cli-help-output"); const _constants = require("../lib/constants"); const _utils = require("../server/lib/utils"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } if (_semver.default.lt(process.versions.node, "18.17.0")) { console.error(`You are using Node.js ${process.versions.node}. For Next.js, Node.js version >= v${"18.17.0"} is required.`); process.exit(1); } // Start performance profiling after Node.js version is checked performance.mark("next-start"); for (const dependency of [ "react", "react-dom" ]){ try { // When 'npm link' is used it checks the clone location. Not the project. require.resolve(dependency); } catch (err) { console.warn(`The module '${dependency}' was not found. Next.js requires that you include it in 'dependencies' of your 'package.json'. To add it, run 'npm install ${dependency}'`); } } class MyRootCommand extends _commander.Command { createCommand(name) { const cmd = new _commander.Command(name); cmd.addOption(new _commander.Option("--inspect").hideHelp()); cmd.hook("preAction", (thisCommand)=>{ const cmdName = thisCommand.name(); const defaultEnv = cmdName === "dev" ? "development" : "production"; const standardEnv = [ "production", "development", "test" ]; if (process.env.NODE_ENV) { const isNotStandard = !standardEnv.includes(process.env.NODE_ENV); const shouldWarnCommands = process.env.NODE_ENV === "development" ? [ "start", "build" ] : process.env.NODE_ENV === "production" ? [ "dev" ] : []; if (isNotStandard || shouldWarnCommands.includes(cmdName)) { (0, _log.warn)(_constants.NON_STANDARD_NODE_ENV); } } process.env.NODE_ENV = process.env.NODE_ENV || defaultEnv; process.env.NEXT_RUNTIME = "nodejs"; if (thisCommand.getOptionValue("inspect") === true) { console.error(`\`--inspect\` flag is deprecated. Use env variable NODE_OPTIONS instead: NODE_OPTIONS='--inspect' next ${cmdName}`); process.exit(1); } }); return cmd; } } const program = new MyRootCommand(); program.name("next").description("The Next.js CLI allows you to develop, build, start your application, and more.").configureHelp({ formatHelp: (cmd, helper)=>(0, _formatclihelpoutput.formatCliHelpOutput)(cmd, helper), subcommandTerm: (cmd)=>`${cmd.name()} ${cmd.usage()}` }).helpCommand(false).helpOption("-h, --help", "Displays this message.").version(`Next.js v${"14.2.16"}`, "-v, --version", "Outputs the Next.js version."); program.command("build").description("Creates an optimized production build of your application. The output displays information about each route.").argument("[directory]", `A directory on which to build the application. ${(0, _picocolors.italic)("If no directory is provided, the current directory will be used.")}`).option("-d, --debug", "Enables a more verbose build output.").option("--no-lint", "Disables linting.").option("--no-mangling", "Disables mangling.").option("--profile", "Enables production profiling for React.").option("--experimental-app-only", "Builds only App Router routes.").addOption(new _commander.Option("--experimental-turbo").hideHelp()).addOption(new _commander.Option("--experimental-build-mode [mode]", "Uses an experimental build mode.").choices([ "compile", "generate" ]).default("default")).option("--experimental-debug-memory-usage", "Enables memory profiling features to debug memory consumption.").action((directory, options)=>// ensure process exits after build completes so open handles/connections // don't cause process to hang import("../cli/next-build.js").then((mod)=>mod.nextBuild(options, directory).then(()=>process.exit(0)))).usage("[directory] [options]"); program.command("dev", { isDefault: true }).description("Starts Next.js in development mode with hot-code reloading, error reporting, and more.").argument("[directory]", `A directory on which to build the application. ${(0, _picocolors.italic)("If no directory is provided, the current directory will be used.")}`).option("--turbo", "Starts development mode using Turbopack (beta).").addOption(new _commander.Option("-p, --port ", "Specify a port number on which to start the application.").argParser(_utils.myParseInt).default(3000).env("PORT")).option("-H, --hostname ", "Specify a hostname on which to start the application (default: 0.0.0.0).").option("--experimental-https", "Starts the server with HTTPS and generates a self-signed certificate.").option("--experimental-https-key, ", "Path to a HTTPS key file.").option("--experimental-https-cert, ", "Path to a HTTPS certificate file.").option("--experimental-https-ca, ", "Path to a HTTPS certificate authority file.").option("--experimental-upload-trace, ", "Reports a subset of the debugging trace to a remote HTTP URL. Includes sensitive data.").action((directory, options, { _optionValueSources })=>{ const portSource = _optionValueSources.port; import("../cli/next-dev.js").then((mod)=>mod.nextDev(options, portSource, directory)); }).usage("[directory] [options]"); program.command("export", { hidden: true }).action(()=>import("../cli/next-export.js").then((mod)=>mod.nextExport())).helpOption(false); program.command("info").description("Prints relevant details about the current system which can be used to report Next.js bugs.").addHelpText("after", `\nLearn more: ${(0, _picocolors.cyan)("https://nextjs.org/docs/api-reference/cli#info")}`).option("--verbose", "Collects additional information for debugging.").action((options)=>import("../cli/next-info.js").then((mod)=>mod.nextInfo(options))); program.command("lint").description("Runs ESLint for all files in the `/src`, `/app`, `/pages`, `/components`, and `/lib` directories. It also provides a guided setup to install any required dependencies if ESLint is not already configured in your application.").argument("[directory]", `A base directory on which to lint the application. ${(0, _picocolors.italic)("If no directory is provided, the current directory will be used.")}`).option("-d, --dir, ", "Include directory, or directories, to run ESLint.").option("--file, ", "Include file, or files, to run ESLint.").addOption(new _commander.Option("--ext, [exts...]", "Specify JavaScript file extensions.").default([ ".js", ".mjs", ".cjs", ".jsx", ".ts", ".mts", ".cts", ".tsx" ])).option("-c, --config, ", "Uses this configuration file, overriding all other configuration options.").option("--resolve-plugins-relative-to, ", "Specify a directory where plugins should be resolved from.").option("--strict", "Creates a `.eslintrc.json` file using the Next.js strict configuration.").option("--rulesdir, ", "Uses additional rules from this directory(s).").option("--fix", "Automatically fix linting issues.").option("--fix-type ", "Specify the types of fixes to apply (e.g., problem, suggestion, layout).").option("--ignore-path ", "Specify a file to ignore.").option("--no-ignore", "Disables the `--ignore-path` option.").option("--quiet", "Reports errors only.").addOption(new _commander.Option("--max-warnings [maxWarnings]", "Specify the number of warnings before triggering a non-zero exit code.").argParser(_utils.myParseInt).default(-1)).option("-o, --output-file, ", "Specify a file to write report to.").option("-f, --format, ", "Uses a specific output format.").option("--no-inline-config", "Prevents comments from changing config or rules.").addOption(new _commander.Option("--report-unused-disable-directives-severity ", "Specify severity level for unused eslint-disable directives.").choices([ "error", "off", "warn" ])).option("--no-cache", "Disables caching.").option("--cache-location, ", "Specify a location for cache.").addOption(new _commander.Option("--cache-strategy, [cacheStrategy]", "Specify a strategy to use for detecting changed files in the cache.").default("metadata")).option("--error-on-unmatched-pattern", "Reports errors when any file patterns are unmatched.").action((directory, options)=>import("../cli/next-lint.js").then((mod)=>mod.nextLint(options, directory))).usage("[directory] [options]"); program.command("start").description("Starts Next.js in production mode. The application should be compiled with `next build` first.").argument("[directory]", `A directory on which to start the application. ${(0, _picocolors.italic)("If no directory is provided, the current directory will be used.")}`).addOption(new _commander.Option("-p, --port ", "Specify a port number on which to start the application.").argParser(_utils.myParseInt).default(3000).env("PORT")).option("-H, --hostname ", "Specify a hostname on which to start the application (default: 0.0.0.0).").addOption(new _commander.Option("--keepAliveTimeout ", "Specify the maximum amount of milliseconds to wait before closing inactive connections.").argParser(_utils.myParseInt)).action((directory, options)=>import("../cli/next-start.js").then((mod)=>mod.nextStart(options, directory))).usage("[directory] [options]"); program.command("telemetry").description(`Allows you to enable or disable Next.js' ${(0, _picocolors.bold)("completely anonymous")} telemetry collection.`).addArgument(new _commander.Argument("[arg]").choices([ "disable", "enable", "status" ])).addHelpText("after", `\nLearn more: ${(0, _picocolors.cyan)("https://nextjs.org/telemetry")}`).addOption(new _commander.Option("--enable", `Enables Next.js' telemetry collection.`).conflicts("disable")).option("--disable", `Disables Next.js' telemetry collection.`).action((arg, options)=>import("../cli/next-telemetry.js").then((mod)=>mod.nextTelemetry(options, arg))).usage("[options]"); program.parse(process.argv); //# sourceMappingURL=next.map