Next.js 中的 npm run dev 和 npm run start 有什么区别?

Pat*_*cco 33 npm reactjs npm-scripts next.js

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 上启动服务器,没有出现任何问题。

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

jul*_*ves 51

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

\n
\n

发展

\n

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

\n
\n

next dev使用热代码\n重新加载、错误报告等在开发模式下启动应用程序。

\n
\n

生产

\n

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

\n
\n

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

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

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

\n
\n

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

\n
\n

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

\n
\n

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

\n
\n
\n

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

\n