我想知道
npm run dev
和npm run start
之间有什么区别。
令我惊讶的是,我在网上找不到关于这个主题的太多信息。
具体来说,我想了解 React 和 Next JS 的背景。
我注意到,使用 React,您可以通过运行
npm run start
来启动应用程序,而无需先运行构建。另一方面,Next JS 的行为似乎并不相同(但我可能在设置上做错了)。
我尝试使用 npm run start
运行新的 Next 应用程序,因为它是 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
- Size – 导航到页面时下载的资源数量 客户端。每条路线的大小仅包括其依赖项。
- First Load JS – 访问页面时下载的资源数量 从服务器。所有人共享的JS数量单独显示 公制。
当您想要启动生产服务器时,后跟
next start
:
在生产模式下启动应用程序。这 应用程序应首先使用next start
进行编译。next build
或
next export
,将应用程序导出为 静态 HTML 时:
允许您将应用程序导出为静态 HTML,这可以是 独立运行,无需 Node.js 服务器。next export
有关更多信息,请参阅 Next.js CLI 文档。
通常这取决于 package.json 文件中写入的内容。例如,就我而言,在这个文件中我得到:
"scripts": {
"watch": "webpack --watch --watch-poll --progress --color",
"prod": "webpack -p",
"watch2": "webpack --watch --watch-poll --progress --color",
"build": "webpack --config=webpack.prod.config.js --progress --watch-poll -p"
},
所以,如果我跑步
npm run watch
我将进行编译以进行开发并将执行:
webpack --watch --watch-poll --progress --color
但是,如果我跑步
npm run build
它将被执行:
webpack --config=webpack.prod.config.js --progress --watch-poll -p
它将编译用于生产。
开发模式(npm run dev): 在开发过程中,您通常运行 npm run dev 来启动 Next.js 提供的开发服务器。 此命令启动本地开发服务器,使您可以处理项目并实时查看更改。 默认情况下,您可以在 Web 浏览器中通过 http://localhost:3000 访问开发服务器。 生产构建(npm run build): 当您准备好部署应用程序时,可以运行 npm run build 来创建 Next.js 项目的优化生产版本。 此命令编译您的 Next.js 项目并生成用于生产部署的优化文件。 优化后的文件存储在项目根目录的 .next 目录中。 启动生产服务器(npm run start): 构建 Next.js 项目后,您可以使用 npm run start 启动生产服务器。 此命令启动一个生产就绪服务器,为构建过程中生成的优化文件提供服务。 值得注意的是,npm run start 提供 .next 目录中的预构建文件,因此不需要根据每个请求重建或重新编译项目。 生产服务器通常默认侦听端口 3000,与开发服务器类似。