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)级别的日志,方便快速定位问题。

相关推荐
kyriewen10 小时前
别再 console.log 了:5 个 Chrome DevTools 调试技巧,用过就回不去了
前端·javascript·面试
IT_陈寒12 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
DigitalOcean13 小时前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
星始流年13 小时前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
李惟14 小时前
开源本地通信库,纯客户端 RPC,像聊天一样通信
前端
YAwu1114 小时前
深入解析 React 炫彩鼠标跟随标题组件:从坐标定位到动画性能
前端·react.js
GuWenyue14 小时前
排序效率低?5分钟吃透快速排序,性能飙升至O(nlogn)
前端·javascript·面试
OpenTiny社区14 小时前
🎨 看完 GenUI SDK 源码我悟了!
前端·vue.js·github
叁两14 小时前
前端转型AI Agent该如何学习?(前置篇)
前端·人工智能·node.js
何时梦醒14 小时前
深入理解递归与快速排序 —— 从基础入门到手写实现
前端·javascript