首页 > 解决方案 > Next.js 中的 npm run dev 和 npm run start 有什么区别?

问题描述

我想知道npm run dev和之间有什么区别npm run start。令我惊讶的是,我在网上找不到太多关于这个话题的信息。

具体来说,我想了解 React 和 Next JS 的上下文。

我注意到使用 React,您可以通过运行来启动您的应用程序npm run start,而无需先运行构建。另一方面,Next JS 的行为似乎并不相同(但我可能在设置上做错了什么)。我尝试使用 运行新的 Next 应用程序npm run start,因为它是 中的默认脚本package.json,但它不起作用。它显示了这个错误:*Error: Could not find a production build*

相反,运行npm run dev创建了一个 .next 文件夹,并在端口 3000 上启动服务器,没有任何问题。

谁能帮我理解这是如何工作的?

标签: reactjsnpmnext.jsnpm-scripts

解决方案


TL;DR:在 Next.js 中,next dev用于在开发模式下运行应用程序。另一方面,next start用于在生产模式下运行应用程序,但需要next build先运行以生成优化的生产构建。


发展

在开发中运行 Next.js 应用程序时,您需要使用next dev

next dev通过热代码重新加载、错误报告等以开发模式启动应用程序。

生产

在为生产构建 Next.js 应用程序时,您需要使用next build

next build为您的应用程序创建优化的生产版本。输出显示有关每条路由的信息。

  • 大小 – 导航到页面客户端时下载的资产数量。每条路由的大小仅包括其依赖项。
  • First Load JS – 从服务器访问页面时下载的资产数量。所有人共享的 JS 数量显示为一个单独的指标。

next start当您要启动生产服务器时,后跟任一 :

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

或者next export,将应用程序导出为静态 HTML时:

next export允许您将应用导出为静态 HTML,无需 Node.js 服务器即可独立运行。


有关更多信息,请参阅Next.js CLI文档。


推荐阅读