Next.js CLI
Next.js CLI 允许你开发、构建和启动应用程序,以及执行其他操作。
要获取可用 CLI 命令的列表,可以在项目目录中运行以下命令:
输出应该类似这样:
你可以向 next
命令传递任何 node 参数:
小贴士: 不带命令运行 next
与运行 next dev
相同
next dev
以开发模式启动应用程序,包括热代码重载、错误报告等功能。
要获取 next dev
可用选项的列表,请在项目目录中运行以下命令:
输出应该类似这样:
应用程序默认将在 http://localhost:3000
启动。默认端口可以用 -p
更改,如下所示:
或使用 PORT
环境变量:
小贴士:
PORT
不能在 .env
中设置,因为 HTTP 服务器的启动发生在任何其他代码初始化之前。
- 如果没有通过 CLI 选项
--port
或 PORT
环境变量指定端口,Next.js 会自动重试其他端口,直到找到可用的端口。
你还可以将主机名设置为与默认的 0.0.0.0
不同,这对于使应用程序在网络上的其他设备可用很有用。可以使用 -H
更改默认主机名,如下所示:
Turbopack (测试版),我们的新打包工具,正在 Next.js 中进行测试和稳定化,有助于在开发应用程序时加快本地迭代速度。
要在开发模式下使用 Turbopack,请添加 --turbo
选项:
对于某些用例,如 webhooks 或身份验证,可能需要使用 HTTPS 在 localhost
上提供安全环境。Next.js 可以通过 next dev
生成自签名证书,如下所示:
你还可以使用 --experimental-https-key
和 --experimental-https-cert
提供自定义证书和密钥。此外,你还可以使用 --experimental-https-ca
提供自定义 CA 证书。
next dev --experimental-https
仅用于开发,并使用 mkcert
创建本地信任的证书。在生产环境中,请使用来自受信任机构的正式签发的证书。在部署到 Vercel 时,会为你的 Next.js 应用程序自动配置 HTTPS。
next build
为你的应用程序创建优化的生产构建。输出显示有关每个路由的信息:
- Size: 客户端导航到页面时下载的资源数量。每个路由的大小仅包括其依赖项。
- First Load JS: 从服务器访问页面时下载的资源数量。所有页面共享的 JS 数量显示为单独的指标。
这两个值都经过 gzip 压缩。首次加载由绿色、黄色或红色表示。对于性能良好的应用程序,应该尽量保持绿色。
要获取 next build
可用选项的列表,请在项目目录中运行以下命令:
输出应该类似这样:
你可以通过在 next build
中使用 --debug
标志来启用更详细的构建输出。
启用此标志后,将显示额外的构建输出,如重写、重定向和标头。
你可以像这样禁用构建的 linting:
你可以像这样禁用构建的名称混淆:
小贴士: 这可能会影响性能,应该只用于调试目的。
你可以通过在 next build
中使用 --profile
标志为 React 启用生产分析。
之后,你可以像在开发中一样使用分析器。
next start
以生产模式启动应用程序。应用程序应该先用 next build
编译。
要获取 next start
可用选项的列表,请在项目目录中运行以下命令:
输出应该类似这样:
应用程序默认将在 http://localhost:3000
启动。默认端口可以用 -p
更改,如下所示:
或使用 PORT
环境变量:
小贴士:
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 服务器配置超时值,请将 --keepAliveTimeout
(以毫秒为单位) 传递给 next start
,如下所示:
next info
打印当前系统的相关详细信息,可用于报告 Next.js 错误。
这些信息包括操作系统平台/架构/版本、二进制文件 (Node.js、npm、Yarn、pnpm) 和 npm 包版本 (next
、react
、react-dom
)。
要获取 next info
可用选项的列表,请在项目目录中运行以下命令:
输出应该类似这样:
运行 next info
将为你提供类似这样的信息:
然后应该将这些信息粘贴到 GitHub Issues 中。
你还可以运行 next info --verbose
,它将打印有关系统和与 next
相关的包安装的额外信息。
next lint
对 pages/
、app/
、components/
、lib/
和 src/
目录中的所有文件运行 ESLint。如果应用程序中尚未配置 ESLint,它还会提供引导式安装所需依赖项。
要获取 next lint
可用选项的列表,请在项目目录中运行以下命令:
输出应该类似这样:
如果你有其他想要进行 lint 的目录,可以使用 --dir
标志指定它们:
有关其他选项的更多信息,请查看我们的 ESLint 配置文档。
Next.js 收集完全匿名的遥测数据,用于一般使用情况。
参与这个匿名程序是可选的,如果你不想共享任何信息,可以选择退出。
要获取 next telemetry
可用选项的列表,请在项目目录中运行以下命令:
输出应该类似这样:
了解更多关于 遥测 的信息。