npm run 常见脚本

ackage.json 文件中 scripts 部分的脚本是为项目预定义的命令行快捷方式,可以通过 npm run <脚本名称> 来执行,大大简化了开发、构建和管理过程。


总体概览

这些脚本可以分为三大类:

  1. Next.js 核心命令:用于开发、构建和启动应用。

  2. 数据库管理:用于设置和重置数据库。

  3. 日志查看:用于查看不同类型的应用日志。


脚本详解

Next.js 核心命令
  • start

    • 命令: npm run start 或 npm start

    • 执行: next start

    • 作用 : 在生产模式 下启动应用服务器。这个命令必须在运行 npm run build 之后才能使用。它会启动一个经过优化的、用于线上环境的服务器。

  • dev

    • 命令: npm run dev

    • 执行: next dev

    • 作用 : 在开发模式下启动应用。这是开发过程中最常用的命令。它会启动一个开发服务器,提供热重载(Hot-Reloading)、错误提示等功能,让你在修改代码后能立即看到效果。

  • build

    • 命令: npm run build

    • 执行: next build

    • 作用 : 为你的应用创建一个用于生产环境的优化版本。它会进行代码压缩、打包、静态页面生成等优化操作,并将结果输出到 .next 文件夹。部署应用到服务器前必须执行此命令。

  • lint

    • 命令: npm run lint

    • 执行: next lint

    • 作用: 运行代码检查工具(通常是 ESLint),分析代码中潜在的错误、不规范的写法或风格问题,以保证代码质量和团队风格的统一。

数据库管理
  • db:setup

    • 命令: npm run db:setup

    • 执行: node scripts/setup-database.js

    • 作用: 运行一个自定义的 Node.js 脚本来设置数据库。这个脚本通常会执行创建数据表、插入初始数据(seeding)等操作。当你第一次搭建项目环境时会用到它。

  • db:reset

    • 命令: npm run db:reset

    • 执行: echo '请手动清空MySQL数据库表,然后运行 npm run db:setup' && exit 1

    • 作用 : 这是一个安全提示脚本,而不是一个自动化的重置脚本。它不会真的去重置数据库,而是:

      1. 在控制台打印一条消息:"请手动清空MySQL数据库表,然后运行 npm run db:setup"。

      2. exit 1 会让命令以一个错误码退出,表示操作没有"成功"执行。

    • 目的: 防止开发者意外地执行一个命令就清空了所有数据。它强制你必须手动去数据库客户端(如 Navicat, DataGrip 等)清空表,然后再运行 db:setup 来重新初始化。

日志查看

这些脚本都依赖于一个自定义的日志查看工具 scripts/view-logs.js。

  • logs

    • 命令: npm run logs

    • 执行: node scripts/view-logs.js

    • 作用: 查看日志的默认操作。具体行为取决于 view-logs.js 脚本的实现,可能默认是显示最近的几条日志。

  • logs:list

    • 命令: npm run logs:list

    • 执行: node scripts/view-logs.js list

    • 作用: 查看日志列表。list 参数可能会让脚本列出所有可用的日志文件或者对日志进行一个概览。

  • logs:tail

    • 命令: npm run logs:tail

    • 执行: node scripts/view-logs.js tail

    • 作用: 实时跟踪日志。类似于 Linux 命令 tail -f,它会持续监听日志文件的末尾,并将新产生的日志实时输出到控制台。这对于线上调试或观察应用实时动态非常有用。

  • logs:error

    • 命令: npm run logs:error

    • 执行: node scripts/view-logs.js error

    • 作用: 筛选并只显示错误日志。error 参数会告诉脚本过滤掉普通信息(INFO)或调试(DEBUG)级别的日志,只展示错误(ERROR)或警告(WARN)级别的日志,方便快速定位问题。

相关推荐
徐小夕3 分钟前
开源了一款基于 Vue 3 的高性能多维表格编辑器
前端·vue.js·github
小豆包api6 分钟前
Nano-Banana速通指南,爆款 AI 绘图神器低成本接入方案
前端
一枚前端小能手15 分钟前
🔥 Vue项目越来越卡?响应式系统的4个性能陷阱
前端·javascript·vue.js
在掘金8011018 分钟前
Rspack 深度解析:面向 Webpack/Vite 用户
前端
卓伊凡19 分钟前
苹果开发中什么是Storyboard?object-c 和swiftui 以及Storyboard到底有什么关系以及逻辑?优雅草卓伊凡
前端·后端
用户68833620597019 分钟前
SolidJS / Qwik:零 JS 运行时与极致懒加载
前端
Devlive 开源社区24 分钟前
CodeForge v25.0.3 发布:Web 技术栈全覆盖,编辑器个性化定制新时代
前端·编辑器
Charlo26 分钟前
是什么让一个AI系统成为智能体(Agent)?
前端·后端
石小石Orz31 分钟前
来自面试官给我的建议,我备受启发
前端·后端·面试
迪迦39 分钟前
基于uni-app的校园综合服务平台开发实战
前端·javascript·开源·uniapp