npm run dev 和 npm start 有什么区别?
这些名字不是一套跨框架固定不变的命令协议。npm 负责运行 package.json 中定义的脚本;具体启动什么程序,由项目自己的 scripts 决定。
先读 scripts,再运行命令
运行 npm run 可以查看当前项目可用的脚本。npm run dev 执行名为 dev 的脚本;npm start 是 npm 的专用生命周期命令,通常执行 start 脚本。不要仅凭脚本名字推断它的全部行为。
npm run
npm run dev以下是不同框架的典型工作流,不是要求你把这些命令全部加进自己的项目。
Vite:开发、构建、预览各有职责
Vite 模板通常把 dev 配为开发服务器,把 build 配为生成生产文件,把 preview 配为本地预览构建结果。preview 用于检查构建产物,不应直接当成面向用户的生产服务器。
npm run build
npm run preview部署静态站点时,通常由托管平台提供生成目录中的文件。具体输出目录和部署步骤以项目配置为准。
Next.js:生产启动之前先构建
常见 Next.js 配置把 dev 交给 next dev,把 build 交给 next build,把 start 交给 next start。因此,在传统 Node.js 自托管方式下,通常先构建,再运行生产服务。
npm run build
npm start静态导出、standalone 和平台托管的流程可能不同。按照实际部署方式阅读官方说明,不要把一种流程套用到所有项目。
给脚本传参数时,注意分隔符
npm run 的 -- 后面用于向脚本传递参数。例如 Vite 支持 --host,但只有需要在局域网中访问开发服务时才应该开放相应监听地址。脚本支持哪些参数,取决于被执行的工具。
npm run dev -- --help命令找不到时检查依赖是否安装;脚本找不到时检查 scripts。这是两个不同层次的问题。
参考资料
命令行为与框架要求会变化。使用前结合你的项目版本,核对相应官方文档。