Next.js CLI

Next.js 命令行工具 (CLI) 允许您启动、构建和导出应用程序。

要获取可用 CLI 命令列表,请在项目目录中运行以下命令:

终端
npx next -h

(npx 随 npm 5.2+ 及更高版本提供)

输出应如下所示:

终端
用法
  $ next <>

可用命令
  build, start, export, dev, lint, telemetry, info

选项
  --version, -v   版本号
  --help, -h      显示此帮助信息

更多信息可通过 --help 标志运行命令查看
  $ next build --help

您可以向 next 命令传递任何 Node 参数

终端
NODE_OPTIONS='--throw-deprecation' next
NODE_OPTIONS='-r esm' next
NODE_OPTIONS='--inspect' next

须知:直接运行 next 等同于运行 next dev

构建

next build 会创建应用程序的优化生产版本。输出会显示每个路由的信息。

  • 大小 - 客户端导航至页面时需要下载的资源量。每个路由的大小仅包含其依赖项。
  • 首次加载 JS - 从服务端访问页面时需要下载的资源量。所有路由共享的 JS 量会单独显示。

这些数值均为 gzip 压缩后的大小。首次加载会以绿色、黄色或红色标示。建议保持绿色以获得最佳性能。

您可以通过 next build--profile 标志启用 React 的生产环境性能分析。此功能需要 Next.js 9.5

终端
next build --profile

之后您可以像开发环境一样使用性能分析器。

您可以通过 next build--debug 标志启用更详细的构建输出。此功能需要 Next.js 9.5.3:

终端
next build --debug

启用此标志后会显示额外的构建输出,如重写规则、重定向和标头信息。

开发

next dev 以开发模式启动应用程序,支持热重载、错误报告等功能:

默认情况下,应用程序会启动在 http://localhost:3000。可以通过 -p 修改默认端口:

终端
npx next dev -p 4000

或使用 PORT 环境变量:

终端
PORT=4000 npx next dev

须知PORT 不能在 .env 中设置,因为 HTTP 服务器的启动早于其他代码初始化。

您还可以修改默认主机名 0.0.0.0,这对于让网络中的其他设备访问应用程序很有用。通过 -H 修改默认主机名:

终端
npx next dev -H 192.168.1.2

生产环境

next start 以生产模式启动应用程序。应用程序应先用 next build 编译。

默认情况下,应用程序会启动在 http://localhost:3000。可以通过 -p 修改默认端口:

终端
npx next start -p 4000

或使用 PORT 环境变量:

终端
PORT=4000 npx next start

须知

  • PORT 不能在 .env 中设置,因为 HTTP 服务器的启动早于其他代码初始化。

  • next start 不能与 output: 'standalone'output: 'export' 同时使用。

保持活动超时

当 Next.js 部署在下游代理(如负载均衡器 AWS ELB/ALB)后方时,必须将 Next.js 底层 HTTP 服务器的 keep-alive 超时配置为大于下游代理的超时时间。否则,当 TCP 连接达到 keep-alive 超时后,Node.js 会立即终止该连接而不通知下游代理。这会导致代理尝试重用已被 Node.js 终止的连接时出现错误。

要为生产环境 Next.js 服务器配置超时值,可向 next start 传递 --keepAliveTimeout(毫秒单位):

终端
npx next start --keepAliveTimeout 70000

代码检查

next lint 会对 pages/app/components/lib/src/ 目录下的所有文件运行 ESLint。如果应用程序尚未配置 ESLint,它还会提供引导式安装所需依赖的功能。

如需检查其他目录,可使用 --dir 标志指定:

终端
next lint --dir utils

遥测

Next.js 会收集完全匿名的通用使用情况遥测数据。参与此匿名计划是可选的,如果您不愿分享任何信息可以选择退出。

要了解有关遥测的更多信息,请阅读此文档

系统信息

next info 会打印当前系统的相关信息,可用于报告 Next.js 错误。这些信息包括操作系统平台/架构/版本、二进制文件(Node.js、npm、Yarn、pnpm)和 npm 包版本(nextreactreact-dom)。

在项目根目录运行:

终端
next info

将输出类似以下示例的信息:

终端

操作系统:
  平台: linux
  架构: x64
  版本: #22-Ubuntu SMP Fri Nov 5 13:21:36 UTC 2021
二进制文件:
  Node: 16.13.0
  npm: 8.1.0
  Yarn: 1.22.17
  pnpm: 6.24.2
相关包:
  next: 12.0.8
  react: 17.0.2
  react-dom: 17.0.2

这些信息应粘贴至 GitHub Issues 中。

如需诊断安装问题,可运行 next info --verbose 打印系统和 next 相关包安装的额外信息。

On this page