reactjs - 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 上启动服务器,没有任何问题。
谁能帮我理解这是如何工作的?
解决方案
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文档。